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