如何在cucumber-jvm中重新运行失败的测试用例?

时间:2015-04-15 07:35:52

标签: maven junit cucumber-jvm

我正在使用cucumber-jvm + Junit + Maven来运行我的测试用例。我无法找到任何重新运行失败的测试用例的方法。我检查了这个Rerunning failed cucumber tests using cucumber-jvm。但是解决方法没有正常工作。

如果您有其他方法可以重新运行测试用例,那将是件好事。

2 个答案:

答案 0 :(得分:1)

使用重新运行插件生成失败的方案列表:

java cucumber.api.cli.Main --plugin rerun:rerun.txt features

这会将每个失败场景的位置写入名为rerun.txt的文本文件中(您可以随意调用它)。然后,您可以使用输出文件作为下一次运行Cucumber的输入,以指定应执行的场景:

java cucumber.api.cli.Main < rerun.txt

答案 1 :(得分:1)

Rerunning failed cucumber tests using cucumber-jvm中以“您可以按如下所示将黄瓜选项传递给mvn”开头查看答案

以下内容是根据问询者的要求从上面的链接复制的

您可以按以下方式将黄瓜选项传递给mvn

 mvn clean verify  -Dcucumber.options="@rerun.txt"

请注意,这里有一个棘手的部分。如果您在首次运行和重新运行时都使用相同的测试运行器(我相信这就是您想要的),那么测试运行器将包含类似

的内容
@CucumberOptions(plugin = { "rerun:target/rerun.txt"})

如果您使用与下面相同的重新运行文件名来使用maven进行重新运行

 mvn clean verify  -Dcucumber.options="@target/rerun.txt"

然后,黄瓜将抱怨找不到重新运行的文件。为什么?因为插件“ rerun:target / rerun.txt”将首先使用此测试运行程序删除文件。

解决方法是先复制/重命名文件,然后像这样启动mvn运行

mv target/rerun.txt rerun.txt &&  mvn clean verify  -Dcucumber.options="@rerun.txt"

这实际上是您想要的。因为说文件target / rerun.txt中是否有5种失败的方案。经过一些修复后重新运行,其中两个通过了。现在,target / rerun.txt仅包含其余3个失败的方案,这将是您调试过程中的新起点。