Как я могу контролировать порядок выполнения тестов в Maven?
Мне нужно выполнить тесты по порядку. Я не могу найти это должным образом документированным где угодно. Я бы предпочел сделать это из командной строки. Что-то вроде
mvn -Dtest=test1,test2,test3,test5 test
Как это сделать?
Ответы
Ответ 1
Вы не можете указать порядок выполнения ваших тестов.
Обходным путем для этого является установка параметра runOrder в алфавитном порядке.
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<configuration>
<runOrder>alphabetical</runOrder>
</configuration>
</plugin>
а затем вам нужно переименовать свои тесты, чтобы получить ожидаемый порядок.
Однако неплохо иметь зависимые тесты. Модульные тесты должны быть fIrst.
Ответ 2
Если вам действительно нужен порядок ваших тестов, вы должны использовать testng вместо JUnit, где вы можете определить зависимости между тестами и на основе этого конкретного порядка тестов. Я знаю, что на практике это времена, когда независимая парадигма не работает.
Ответ 3
Существует плагин Maven Surefire, который позволяет вам указать порядок тестирования.
В противном случае ваши тесты должны быть запущены в порядке, потому что они зависят друг от друга, я бы настоятельно рекомендовал против этого. Каждый тест должен быть независимым и иметь возможность запускаться сам по себе. И если каждый тест независим, то не имеет значения, в каком порядке они работают. Независимые тесты также означают, что вы можете запускать один тест повторно, не перезагружая всю тестовую цепочку. Это огромная экономия времени.
Ответ 4
Вы можете создать набор тестов, который запускает все ваши тесты и запускает их.
С junit 4: -
@RunWith(Suite.class)
@Suite.SuiteClasses({Test1.class,
Test2.class,
Test3.class,
Test4.class,
Test5.class
})
public class TestSuite
{
}
Это запустит их в правильном порядке.
Ответ 5
Если ваши юнит-тесты нужно запускать в определенном порядке, это, вероятно, потому, что ваши тесты плохо разработаны или ваше приложение плохо спроектировано. Ваши модульные тесты должны быть независимыми друг от друга.
Ответ 6
У меня похожая проблема. У меня есть 3 разных комплекта (TestSetup (подготовка системы), здравомыслие и регрессия), и когда я контролирую контрольные примеры из Excel с флагами Да/Нет. Но когда я включаю все TC во всех пакетах в Excel, порядок выполнения будет случайным. Я попытался со всеми параметрами, но не повезло. Любой ценой следует сначала выполнить комплект TestSetup, а затем другие комплекты. Примечание. Процесс выполнения корректен, когда я запускаю редактор Eclipse.
Любезно помочь.