我目前正在使用Protractor和Cucumber.js在Angular应用程序上运行自动化测试。我使用Webstorm和两个插件,Cucumber.js和Gherkin。
我遇到的问题是在尝试为步骤定义目录指定唯一位置时。感觉我有多个项目使用一些相同的步骤定义,我希望能够消除重复的代码并将这些步骤定义拉入公共/共享目录。
我能够使我的代码正常工作,但Gherkin / Cucumber.js插件无法识别步骤定义的位置。这消除了许多有用的突出显示和文件定位工具。那么,有没有人遇到过这个问题,或者有人知道如何指定自定义步骤定义位置吗?
答案 0 :(得分:1)
您无法为WebStorm做很多工作来识别您的步骤。改为创建一个符号链接。
两个选项:
我更喜欢第二个选项,因为WebStorm能够识别那些步骤并删除未知步骤定义突出显示。
答案 1 :(得分:-1)
考虑以下目录结构:
test/componentA/first.feature
test/componentA/step_definitions/firstFeaturesSteps.js
test/componentB/second.feature
test/componentB/step_definitions/secondFeaturesSteps.js
test/step_definitions/someCommonSteps.js
如果protractor.conf.js(或你命名的wtv)有
,测试应该会成功匹配cucumberOpts: {
require: ['test/**/step_definitions/**/*Steps.js'],
format: 'pretty'
}
如果您正在使用WebStorm或IDEA,那么如果将步骤定义放在“step_definitions”目录中,则自动完成和ctrl-click魔术将起作用。您应该能够按住Ctrl键单击.feature的步骤以进入步骤定义...即使first.feature中的步骤与commonSteps.js或secondFeaturesSteps.js中的步骤定义匹配也是如此。只有当它们位于step_definition目录中并且它与在cucumberOpts.require中传递的源文件无关时,IDE似乎才知道步骤的位置。