2015-10-21 3 views
1

У меня есть мультимодуль Maven проект. В одном модуле у меня есть несколько модульных тестов, которые запускают HTTP-сервер . Иногда я получаю ошибки, потому что сервер не может быть запущен на порту, потому что он уже занят. Это не кажется правильным, если maven запускает тесты последовательно.Выполняет ли maven тесты JUnit последовательно?

+3

Если вам нужен определенный заказ, вы должны использовать TestNG вместо этого, и по определению единичный тест не имеет определенного порядка, что означает, что ваши тесты являются интеграционными тестами ... и должны обрабатываться maven-отказоустойчивым плагином. – khmarbaise

ответ

2

По конструкции модульные испытания должны быть независимыми и не выполняться последовательно. Поэтому JUnit и тестовая задача maven не запускают их последовательно по умолчанию. Начиная с JUnit 4.11, теперь он поддерживает указание порядка выполнения с использованием анкеты @FixMethodOrder. Однако, если вы хотите проверить функциональность вне определенной единицы кода, вам следует рассмотреть интеграционное тестирование.

Это может быть достигнуто несколькими различными способами. Если вам нужно протестировать содержимое в контейнере, вы можете использовать Arquilion. Вы также можете высмеять функциональность зависимых объектов, используя насмешливые библиотеки, такие как Mockito.

Смежные вопросы