ВопросУстановка JUnit таймаут в затмении
Когда я запускаю все наши JUnit тесты, используя затмение, можно установить тайм-аут по умолчанию?
фон
Мой менеджер настаивает на написании юнит-тестов, которые иногда принимают до 5 минут. Когда я пытаюсь запустить весь комплект тестов (всего около 300 тестов), он может занять более 30 минут. Я хочу положить что-то на место, которое остановит любой тест, который займет больше 10 секунд.
Я знаю, индивидуальный тест может быть с аннотацией:
@Test(timeout=10000)
Но делать это сделало бы его длинные тесты всегда терпят неудачу. Я хочу, чтобы они работали, когда он запускал их на своей коробке (если мне нужно внести незначительные корректировки в проект, прежде чем проверять его, это приемлемо. Однако удаление тайм-аутов из 40 различных тестовых файлов нецелесообразно).
Я также знаю, что могу создать муравья задачу установить тайм-аут по умолчанию для всех тестов, вдоль линий:
<junit timeout="10000">
...
</junit>
Проблема, что мы обычно работают наши тесты внутри затмения с Щелкните правой кнопкой мыши > Run As> JUnit Test.
Резюме
Так есть относительно безболезненный способ установить тайм-аут для всех тестов, возможно, с помощью настройки конфигурации Run, или настройки проекта, или предпочтение JUnit, или переменную окружения, или что-то? Я даже решил установить какой-либо другой плагин, который позволяет мне щелкнуть правой кнопкой мыши по конкретным тестовым папкам и запустить все тесты каким-то другим способом, например, через муравей или что-то в этом роде.
Испытания, которые занимают 5 минут? Похоже, они либо делают * далеко * слишком много за тест, либо являются интеграционными тестами, а не модульными тестами ... –
Вы можете отделить интеграционный тест от junit-тестов. Долгосрочные тесты должны выполняться на сервере-сборщике, таком как hudson, а не на вашей локальной машине. –
@ Дональд: к сожалению, это единичные тесты. Мне они не нравятся. Я не согласен с ними. Но я ничего не могу с ними поделать. Отсюда мой вопрос ... Моя цель - по крайней мере, нейтрализовать проблему на моей коробке. Я думаю, что я собираюсь написать аспект, чтобы аннотировать все методы тестирования с помощью '@test (timeout = 10)'. Тогда я просто не проверю этот аспект на Subversion. Это мой план, я думаю ... – gMale