Java 如何在JVM中并行运行场景?

Java 如何在JVM中并行运行场景?,java,cucumber,cucumber-jvm,cucumber-junit,junit-runner,Java,Cucumber,Cucumber Jvm,Cucumber Junit,Junit Runner,我有一套为JVM编写的验收测试。为了减少反馈时间,我希望并行运行(功能的)场景。我如何以最简单、最方便的方式做到这一点 (我希望能够用Java代码来表达这一点,作为一个常规的JUnit测试/运行程序,也就是说,我不希望使用maven surefire或maven failsafe插件求助于一些解决方法,这需要(?)旋转和合并Cucumber报告。)由于Cucumber jvm包的性质,测试并行化目前是有限的。在未来有一些改变API(gherkin3,cucumber jvm v2)的初步计划,但

我有一套为JVM编写的验收测试。为了减少反馈时间,我希望并行运行(功能的)场景。我如何以最简单、最方便的方式做到这一点


(我希望能够用Java代码来表达这一点,作为一个常规的JUnit测试/运行程序,也就是说,我不希望使用maven surefire或maven failsafe插件求助于一些解决方法,这需要(?)旋转和合并Cucumber报告。)

由于Cucumber jvm包的性质,测试并行化目前是有限的。在未来有一些改变API(gherkin3,cucumber jvm v2)的初步计划,但是现在在cucumber jvm上没有完全并行化的功能

仍然有一种方法可以在jvm上实现一定程度的并行性。西葫芦软件包()可以提供上下文级并行性,这有助于您针对Android/iOS/Chrome/等运行一系列测试。然后将测试结果合并到单个报告中

要开始使用西葫芦,请创建一个新的测试类,该类扩展
AbstractZucchiniTest
,并用
@CucumberOptions
ZucchiniOutput
标记。然后,该类应该实现
List getTestContexts()
方法,该方法返回专用上下文的列表


西葫芦还提供了其他功能,如跨上下文障碍同步和将测试输出聚合到HTML报告中。如果您已经有cucumber测试,那么将它们升级到西葫芦测试就没有太大的难度。

我使用surefire并行运行cucumber测试,并将其与Jenkins插件一起使用。为什么需要合并cucumber报告?如果您正在使用gradle,也可以与gradle合并?也面临同样的问题。在原始答案中很难找到答案。将来可能会对某人有所帮助-在Configuration中使用带有“SCENARIO”的“cucumber jvm并行插件”。下面有一个示例:。它展示了如何将Selenium web驱动程序用于Chrome和Firefox以及西葫芦,并且应该为任何平台构建repo,尽管chromedriver的执行取决于操作系统。