JUnit 5测试执行按标记排序

JUnit 5测试执行按标记排序,junit,junit5,Junit,Junit5,是否可以根据@Tag更改测试执行顺序?我想在@Tag(“slow”)之前执行所有标有@Tag(“fast”)的测试 我对IntelliJ IDEA和Maven的解决方案感兴趣。两者都不关心标签的配置顺序 Maven的我的配置: <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-surefire-plugin</artifactId>

是否可以根据
@Tag
更改测试执行顺序?我想在
@Tag(“slow”)
之前执行所有标有
@Tag(“fast”)
的测试

我对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>

org.apache.maven.plugins
maven surefire插件
2.22.0
org.junit.platform
junit平台surefire提供程序
1.2.0
快,慢

我想我最好的办法是单独运行这些套件。

JUnit Jupiter只对测试类进行一次传递,并执行标记处于活动状态的所有测试,因此它不会排序。对于一个按标记排序测试的工具,它必须运行JUnit几次,每个标记一次,但是没有一个工具可以直接运行JUnit


在IntelliJ(搜索“@Tag”)中,您可以生成几个这样的配置。在Maven中,您可以为Surefire和Failsafe提供不同的标签来执行,尽管这只会为您购买两次而不是一次执行。

在Maven中,您应该能够为Surefire或Failsafe的每个标签配置一个配置文件,这将允许您根据需要对它们进行分组。因此,是否合并了配置的组?我没试过。。。它们实际上是JUnit平台的单独运行,但是生成的测试报告可以聚合。因此,在后一种意义上,是的,整体测试结果将被合并——例如,由CI服务器合并。澄清一下:每个标记的配置文件当然是可能的,但激活几个配置文件并不会导致所有标记都被激活(一个配置文件胜过其他配置文件[不,这不会在Twitter上侮辱他们])也不允许他们以任何特定的顺序运行。当然,可以使用不同的配置文件多次调用Maven。