在Webstorm中指定步骤定义路径

时间:2016-01-25 21:47:57

标签: angularjs protractor webstorm gherkin cucumberjs

我目前正在使用Protractor和Cucumber.js在Angular应用程序上运行自动化测试。我使用Webstorm和两个插件,Cucumber.js和Gherkin。

我遇到的问题是在尝试为步骤定义目录指定唯一位置时。感觉我有多个项目使用一些相同的步骤定义,我希望能够消除重复的代码并将这些步骤定义拉入公共/共享目录。

我能够使我的代码正常工作,但Gherkin / Cucumber.js插件无法识别步骤定义的位置。这消除了许多有用的突出显示和文件定位工具。那么,有没有人遇到过这个问题,或者有人知道如何指定自定义步骤定义位置吗?

2 个答案:

答案 0 :(得分:1)

您无法为WebStorm做很多工作来识别您的步骤。改为创建一个符号链接。

两个选项:

1创建对私有模块的引用

  1. 使用您的步骤定义创建一个私有模块
  2. 在step_definitions文件夹中创建一个文件'whatever.js'
  3. 在该文件类型中:module.exports = require('myPrivateModule');
  4. 2从您的私有模块创建一个符号链接到您的step_definitions文件夹

    我更喜欢第二个选项,因为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似乎才知道步骤的位置。