Запустите тесты junit на затмении, отфильтрованном по имени - PullRequest
0 голосов
/ 07 июня 2018

Как я могу запустить все тесты, которые заканчиваются на "IT" в enclipse?

Видите, по умолчанию у меня есть класс тестов, который заканчивается на "Test" или "IT" end, я просто хочу запустить те, которые закончились"IT".

Ответы [ 2 ]

0 голосов
/ 09 июня 2018

Рекомендую посмотреть аннотацию @ IncludeClassNamePatterns .Он относится к Junit 5, который должен работать на Eclipse Oxygene.1a +.

0 голосов
/ 08 июня 2018

Самое основное решение - использовать Suite с перечисленными необходимыми классами тестов.Например:

@RunWith(Suite.class)
@SuiteClasses({ FirstIT.class, SecondIT.class })
public class TestSuite {

}

Этот класс затем можно запустить непосредственно как тест в Eclipse


В противном случае можно использовать что-то вроде библиотеки Reflections сканирование:

@RunWith(ReflectionsScanner.class)
public class ReflectionsScanner extends Suite {
    public ReflectionsScanner(Class<?> klass, RunnerBuilder builder)
            throws InitializationError {
        super(builder, klass, getAnnotatedClasses());
    }

    private static Class<?>[] getAnnotatedClasses() {
        Reflections reflections = new Reflections("my.package",
                new SubTypesScanner(false));
        Set<String> allTypes = reflections.getAllTypes();
        Class<?>[] matchingClasses = allTypes.stream()
                .filter(name -> name.endsWith("IT")).map(name -> {
            try {
                return Class.forName(name);
            } catch (Exception ex) {
                throw new IllegalStateException(ex);
            }
        }).toArray(Class[]::new);
        return matchingClasses;
    }
}

reflections.getAllTypes() иногда может быть слишком много - есть также getSubTypesOf() и getTypesAnnotatedWith(), которые могут обеспечить более простой фильтр.Ссылка выше объясняет это более подробно.


Другой простой способ - использовать несколько исходных папок для двух типов тестов - например, src/test/java и src/it/java при использовании Maven.Затем Eclipse позволит вам запускать / модульное тестирование непосредственно в родительских папках.

Для Maven вам потребуется добавить каталог исходного кода теста .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...