JUnit 5测试执行按标签排序

时间:2018-08-02 11:48:18

标签: junit junit5

是否可以根据@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>

我猜我最好的选择是分别运行套件。

1 个答案:

答案 0 :(得分:1)

JUnit Jupiter仅对测试类进行一次传递,并执行其标记处于活动状态的所有测试,因此不会排序。对于要按标签订购测试的工具,它必须运行JUnit几次,每个标签一次,但是没有一种工具可以立即使用。

在IntelliJ you can run all tests with a specific tag中(“ @Tag”的earch),因此您可以生成多个这样的配置。在Maven中,您可以为Surefire和Failsafe提供不同的标签来执行,尽管这样做只会给您带来两次执行,而不是一次。