是否可以根据@Tag
更改测试执行的顺序?我想在@Tag("fast")
之前执行所有标有@Tag("slow")
的测试。
我对IntelliJ IDEA和Maven的解决方案感兴趣。两者都不关心标记的配置顺序。
我的Maven配置:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.22.0</version>
<dependencies>
<dependency>
<groupId>org.junit.platform</groupId>
<artifactId>junit-platform-surefire-provider</artifactId>
<version>1.2.0</version>
</dependency>
</dependencies>
<configuration>
<properties>
<includeTags>fast,slow</includeTags>
</properties>
</configuration>
</plugin>
我猜我最好的选择是分别运行套件。
答案 0 :(得分:1)
JUnit Jupiter仅对测试类进行一次传递,并执行其标记处于活动状态的所有测试,因此不会排序。对于要按标签订购测试的工具,它必须运行JUnit几次,每个标签一次,但是没有一种工具可以立即使用。
在IntelliJ you can run all tests with a specific tag中(“ @Tag”的earch),因此您可以生成多个这样的配置。在Maven中,您可以为Surefire和Failsafe提供不同的标签来执行,尽管这样做只会给您带来两次执行,而不是一次。