У нас есть несколько сотен тестов в нашем проекте, и теперь нам нужно запустить их все с помощью специального тестера.Мы написали специальный тестовый прогон 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, чтобы ониспользоваться на всех тестовых классах?