Более простой способ применить пользовательский JUnit Test Runner к сотням классов тестирования Java - PullRequest
0 голосов
/ 15 марта 2019

У нас есть несколько сотен тестов в нашем проекте, и теперь нам нужно запустить их все с помощью специального тестера.Мы написали специальный тестовый прогон RetryRunner, который повторяет неудачный тест для настраиваемого максимального количества попыток.Код для RetryRunner был взят отсюда: Как перезапустить неудачные тесты JUnit немедленно?

Теперь, чтобы запустить тестовый класс с этим RetryRunner, у нас либо есть опция:

1.

@ RunWith (CustomSuite.class)

@Suite.SuiteClasses ({TestClass1.class, TestClass2.class})

где CustomSuite.class возвращает наш RetryRunner, так что механизм повторной проверки применяется к TestClass1 и TestClass2.(Примечание: некоторые из наших тестов действительно являются частью @ Suite.SuiteClasses)

ИЛИ

2.

@ RunWith (RetryRunner.class) открытый класс SampleTestClass {...}

, что позволит запускать все тесты в SampleTestClass с RetryRunner.И мы аналогичным образом продолжаем использовать @RunWith (RetryRunner.class) для каждого тестового класса.

Теперь, хотя мы хотели бы сохранить все наши тесты в @ Suite.SuiteClasses, в настоящее время это не практично, так как у нас есть многомодули в нашем проекте и большинство наших тестов соответствуют структуре каталогов module_name -> src -> test, которая требуется maven для запуска тестов.Поэтому эти тесты не входят в состав @ Suite.SuiteClasses, и maven автоматически выбирает их и запускает во время выполнения.

Мой вопрос заключается в том, как применить наш RetryRunner ко всем нашим тестовым классам, которые не являются частью @Suite.SuiteClasses?Поскольку у нас есть сотни тестовых классов, переход к каждому тестовому классу и добавление к нему @RunWith (RetryRunner.class) будет наименее предпочтительным вариантом, поскольку он довольно громоздкий.

Вопрос 1: Есть ли способ пройтиRetryRunner как командная строка maven аргументируется таким образом, что он заменит нормальный Runner для всех тестовых классов?

Question2: или есть способ настроить RetryRunner в основном проекте pom.xml, чтобы ониспользоваться на всех тестовых классах?

...