如何在黄瓜jvm中重新运行失败的测试用例



我正在使用cucumber jvm+Junit+Maven来运行我的测试用例。我找不到任何方法来重新运行我失败的测试用例。我已经检查了这个使用黄瓜jvm重新运行失败的黄瓜测试。但这种变通方法并不奏效。

如果您有任何其他方法来重新运行测试用例,那就太好了。

请参阅使用黄瓜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"

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

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

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

这正是你想要的。因为假设文件target/rerun.txt中有5个失败的场景。经过修复后重新运行,其中2个通过了。现在,target/rerun.txt将只包含剩下的3个失败场景,这将是调试过程中的新起点。

使用重新运行插件生成失败场景列表:

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

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

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

最新更新