#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
.