我有两个功能文件:first/first.feature
和second/second.feature
。
另外,我有两个步骤定义文件,分别位于package1
和package2
中。
因此,我可以使用特定的glue
和features
配置运行第一个(或第二个)功能测试。
但是如果我想同时运行这两个功能,我会得到cucumber.runtime.DuplicateStepDefinitionException
。
我可以创建使我能够运行所有功能测试的配置吗?也许可以提供glue
-feature
对(或映射?)。
顺便说一句,我使用的是gradle-cucumber-plugin。
答案 0 :(得分:2)
这就是黄瓜的工作方式;所有stepdefinitions将被加载,并且不能包含重复项(否则Cucumber将如何知道要使用哪个重复项)。将步骤定义绑定到特定功能实际上被认为是反模式:https://docs.cucumber.io/guides/anti-patterns/#feature-coupled-step-definitions 如果步骤实际上相同,请考虑合并您的步骤定义。如果实际上它们应该不同,请考虑为每个步骤使用不同的语言。
如果确实有理由通过不同的步骤运行不同的功能(例如,一个针对UI,另一个针对API),则可以指定具有不同配置的不同运行程序,并运行所有运行程序以运行所有测试。