Я хотел бы остановиться и отметить как неудачные слишком длинные тесты junit (выполненные в Maven 3 build). Я знаю три способа сделать это:
1) Использование тестовой аннотации с параметром таймаута:
@Test(timeout=100)
public void testWithTimeout() {
...
}
2) Использование аннотации Rule:
@Rule
public Timeout globalTimeout = new Timeout(100);
3) Настройка плагина maven-surefire с помощью следующих параметров:
forkedProcessTimeoutInSeconds=1
reuseForks=false
Ключ 1) и 2) требует изменения каждого теста (он болит, когда у вас много тысяч). 3) решение неприемлемо, так как во многих модулях сначала начинается тест, контекст, который используется результатами тестовых испытаний, резко сократится.
Есть ли у вас какие-либо другие идеи, как достичь этого? Любое сложное решение (не связанное с патчем JUnit:))?