黄瓜DuplicateStepDefinitionException

时间:2018-06-23 08:00:48

标签: gradle kotlin cucumber cucumber-jvm

我有两个功能文件:first/first.featuresecond/second.feature。 另外,我有两个步骤定义文件,分别位于package1package2中。

因此,我可以使用特定的gluefeatures配置运行第一个(或第二个)功能测试。

但是如果我想同时运行这两个功能,我会得到cucumber.runtime.DuplicateStepDefinitionException

我可以创建使我能够运行所有功能测试的配置吗?也许可以提供glue-feature对(或映射?)。

顺便说一句,我使用的是gradle-cucumber-plugin

1 个答案:

答案 0 :(得分:2)

这就是黄瓜的工作方式;所有stepdefinitions将被加载,并且不能包含重复项(否则Cucumber将如何知道要使用哪个重复项)。将步骤定义绑定到特定功能实际上被认为是反模式:https://docs.cucumber.io/guides/anti-patterns/#feature-coupled-step-definitions 如果步骤实际上相同,请考虑合并您的步骤定义。如果实际上它们应该不同,请考虑为每个步骤使用不同的语言。

如果确实有理由通过不同的步骤运行不同的功能(例如,一个针对UI,另一个针对API),则可以指定具有不同配置的不同运行程序,并运行所有运行程序以运行所有测试。

相关问题