Поиск аннотированных методов в коде приложения из интеграционного теста maven

В моей программе есть пользовательская аннотация, которую я применяю к методам. Я хотел бы найти все методы с конкретной аннотацией. Из моего кода приложения я могу использовать пакет Reflections для этого:

new Reflections(
    new ConfigurationBuilder().setUrls(
        ClasspathHelper.forPackage("com.my.package")
    ).setScanners(new MethodAnnotationsScanner())
    ).getMethodsAnnotatedWith(MyAnnotation.class);

Однако, когда я пытаюсь сделать то же самое из интеграционного теста, вызванного через failsafe чтобы найти аннотированные методы в приложении (не в тесте), никаких методов не найдено. Как я могу получить свои аннотированные методы из интеграционного теста?

1 ответ

Решение

Я должен был изменить две вещи, чтобы заставить их работать:

  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.
  2. Я изменил Reflections создание экземпляра следующим образом:

    новые отражения ("com.my.package", новый MethodAnnotationsScanner());

Другие вопросы по тегам