Этот вопрос предлагает использовать timeout аннотации @Test, чтобы JUnit принудительно останавливал тесты по истечении этого периода ожидания.
Но у нас уже есть около 5000 модульных тестов, и мы хотим установить политику, которая просит разработчиков никогда не выпускать тесты, для завершения которых требуется более 10 секунд. В политике, вероятно, будет указано «стремиться к ‹ 10 секунд», но тогда мы хотели бы гарантировать, что любой тест будет остановлен, скажем, через 30 секунд. (числа приведены только для примера, идея состоит в том, чтобы определить что-то, что «достаточно хорошо» для большинства случаев использования, но также гарантирует, что вещи не будут работать «вечно»)
Теперь мне интересно, есть ли способ включить такое поведение без перехода к каждому тестовому случаю и добавления этого параметра аннотации.
Существующий вопрос тоже не помогает: я ищу одно изменение, чтобы включить это, а не одно изменение для каждого тестового класса. Один центральный глобальный коммутатор. Не по одному на файл или метод.
@Rule
(github.com/junit-team/junit4 /wiki/timeout-for-tests), который действителен для всего тестируемого класса, а не для отдельного метода. Похоже, у кого-то уже была ваша проблема: github.com/junit-team/junit4/ выпусков/140 - person f1sh   schedule 08.05.2018ServiceLoader
), которое не пройдет тесты, выполнение которых занимает слишком много времени. Однако такое расширение не могло (в настоящее время) упреждающе завершить выполнение теста. Я мог бы опубликовать такой ответ, но поскольку вы утверждаете, что хотите, чтобы все не работало вечно... Я не уверен, что вам это будет интересно. - person Sam Brannen   schedule 08.05.2018