我想重新运行一个我知道会失败的测试,因为我正在尝试测试Surefire参数以重新运行失败的测试。我尝试使用这两个命令运行Maven,但它们都没有按预期工作
-Dsurefire.rerunFailingTestsCount=2 -Dtest=TestThatFails test
和
-Dsurefire.rerunFailingTestsCount=2 -Dtest=TestThatFails surefire:test
这是pom.xml
的一部分
<dependency>
<groupId>org.apache.maven.surefire</groupId>
<artifactId>surefire-api</artifactId>
<version>2.19.1</version>
</dependency>
<dependency>
<groupId>org.seleniumhq.selenium</groupId>
<artifactId>selenium-java</artifactId>
<version>2.53.1</version>
</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.12</version>
<scope>test</scope>
我希望Surefire会在失败后重新启动测试,但Maven只会引发此错误,我知道如何解决此错误,但我希望重新运行测试。
Results :
Tests in error:
testA(selenium.services.TestThatWillFail): Element is not currently visible and so may not be interacted with(..)
Tests run: 1, Failures: 0, Errors: 1, Skipped: 0
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 55.060 s
[INFO] Finished at: 2016-11-24T12:58:02+01:00
[INFO] Final Memory: 18M/173M
[INFO] ------------------------------------------------------------------------
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-surefire-plugin:2.12.4:test (default-test) on project eskn_selenium: There are test failures.
4条答案
按热度按时间z6psavjg1#
对 vim ·拉特吉茨的答案补充一下--
rerunFailingTestsCount
必须在configuration
部分,而不是在properties
部分,如下所示:在我使用
maven-surefire-plugin
2. 19. 1的情况下,它是这样工作的。当它在properties
中时,它不工作。drkbr07n2#
除了使用命令行属性-Dsurefire.rerunFailingTestsCount=2,您还可以在属性部分的pom中定义它
km0tfn4u3#
JUnit 5的更新:Maven Surefire
3.0.0-M4
或更高版本现在允许您在执行JUnit 5测试时使用rerunFailingTestsCount
系统属性。请确保在运行
mvn clean
阶段时传递以下属性:pokxtpni4#
虽然文档中没有这个参数,但是参数
rerunFailingTestsCount
是在Maven Surefire插件的2.18版本中引入的,如SUREFIRE-1087中所述。由于您使用的是默认版本2.12.4(来自Super POM),因此该选项不可用。因此,修复方法只是将Surefire版本更新为至少2.18的版本;例如,最新的版本,当前为2.19.1:
请注意,此参数仅适用于JUnit 4+(这是您的情况,因为您拥有JUnit 4.12)。