Как получить список всех методов аннотации @Test из исходного пакета теста

#testing #annotations

#тестирование #аннотации

Вопрос:

Я работаю над проектом, в котором все тестовые классы в пакете будут заполняться в пользовательском интерфейсе, где я могу выбрать любой из классов и запустить. Теперь я хочу расширить его до запуска методов тестирования. Для этого мне нужно получить все тестовые методы в тестовом классе.Я нашел следующий класс, который предоставит мне тестовые классы.Но проблема в том, что я легко получаю все методы @Test из пакетов src / main / java, а не из src / test / java. он не может распознать исходный пакет теста.

Я применил приведенный ниже код, и он может предоставить мне все имена классов и методов, которые содержат методы @Test.Но это неприменимо, чтобы узнать имена классов и методов из src / test / java проекта maven.

общедоступный статический набор> getClassesFromPackage(String packageName) { Reflections отражения = новые отражения(packageName, new SubTypesScanner(false)); возвращает reflections.getSubTypesOf(Object.class ); }

 public static void main(String[] args) {
    for ( Class c: getClassesFromPackage("SourceMainJavaPackageName" )){

            Method[] methods = c.getMethods();
            for (Method method : methods) {                 
                for (Annotation annotation : method.getDeclaredAnnotations()) {
                    if (annotation.annotationType().equals(org.junit.Test.class)) {
                        count  ;
                    }
                }
            }               

               }
}
  

я хочу имена методов @Test и соответствующие имена классов из src / test / java.

Комментарии:

1. Поскольку код в src/main/java не может видеть код в src/test/java , поместите этот основной метод в класс в src/test/java .