Поиск аннотированных методов в коде приложения из интеграционного теста maven
В моей программе есть пользовательская аннотация, которую я применяю к методам. Я хотел бы найти все методы с конкретной аннотацией. Из моего кода приложения я могу использовать пакет Reflections для этого:
new Reflections(
new ConfigurationBuilder().setUrls(
ClasspathHelper.forPackage("com.my.package")
).setScanners(new MethodAnnotationsScanner())
).getMethodsAnnotatedWith(MyAnnotation.class);
Однако, когда я пытаюсь сделать то же самое из интеграционного теста, вызванного через failsafe
чтобы найти аннотированные методы в приложении (не в тесте), никаких методов не найдено. Как я могу получить свои аннотированные методы из интеграционного теста?
1 ответ
Решение
Я должен был изменить две вещи, чтобы заставить их работать:
- Я использовал версию 0.9.9-RC1. Я был достаточно небрежен, чтобы сначала обнаружить Reflections по адресу https://code.google.com/archive/p/reflections/, где в качестве последней версии указан 0.9.9-RC1, и не заметил мелкий шрифт, в котором упоминалось, что проект был перешел на GitHub. Я предположил, что 0.9.9-RC1 была последней версией, но это не так. Самое позднее на момент написания статьи было 0.9.11.
Я изменил
Reflections
создание экземпляра следующим образом:новые отражения ("com.my.package", новый MethodAnnotationsScanner());