可以使用 Maven Surefire 插件多次运行相同的测试吗?

问题描述 投票:0回答:4

有一个配置值rerunFailingTestsCount,但我想运行一个测试方法可配置的次数,即使它是成功的。有什么选择吗?

java maven-3 junit4 maven-plugin surefire
4个回答
5
投票

我认为不可能配置

maven-surefire-plugin
来重新运行通过测试。

但是,您可以使用 TestNG(不是 JUnit)配置单个测试的调用计数

@Test
注释:

@Test(invocationCount = 5)
public void testSomething() {
}

这将导致

testSomething
方法被测试 5 次。

如果你不想走TestNG路线,你可以参考这个答案获取JUnit的解决方案。


0
投票

如果您想通过实现 IInvokedMethodListener beforeInvocation 方法对其进行配置,则可以达到以下效果:

method.getTestMethod().setInvocationCount(Integer.parseInt(System.getProperty("configurablecount")));

System.getProperty 可以替换为您想要的配置。 您还可以通过传递测试名称来控制要设置要更改的调用计数的测试。


0
投票

可以通过复制

pom.xml
中的执行阶段来完成。显然,缺点是随着运行次数的增加,它会变得重复和乏味。人们还可以更有选择性地选择一部分测试来在“重复”阶段重新运行。

<build>
    <plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-surefire-plugin</artifactId>
            <configuration>
                <skip>true</skip>
            </configuration>
            <executions>
                <execution>
                    <id>phase-1</id>
                    <phase>test</phase>
                    <configuration>
                        <skip>false</skip>
                        <!-- Phase 1 configuration -->
                    </configuration>
                    <goals>
                        <goal>test</goal>
                    </goals>
                </execution>
                <execution>
                    <id>phase-2</id>
                    <phase>test</phase>
                    <configuration>
                        <skip>false</skip>
                        <!-- Phase 2 configuration -->
                    </configuration>
                    <goals>
                        <goal>test</goal>
                    </goals>
                </execution>
            </executions>
        </plugin>
    </plugins>
</build>

0
投票

是的。这是可能的。将此命令放入 cmd 并进行测试:

对于 (1 1 30) 中的 /l %i 执行 mvn -Dtest="TransformationTest" 测试 > 输出文件%i

这将运行 mvn 命令 30 次,并将输出通过管道传输到 outputFile1、outputFile2 等。

© www.soinside.com 2019 - 2024. All rights reserved.