黄瓜没有在javascript项目中看到步骤

时间:2018-02-02 10:21:59

标签: javascript protractor automated-tests cucumber

我无法弥补为什么黄瓜看不到步骤。

这是我的结构。目前只有test.feature很重要,因为我试图简化一切:

enter image description here

这是我的test.feature:

enter image description here

这是我的test.steps:

enter image description here

这是我现在非常简化的world.js:

enter image description here

如您所见,该功能未见步骤。

以下是测试结果: enter image description here

我尝试使用正则表达式,文件名,文件夹移动等操作。也许有人可以给我一个提示我还能尝试的其他内容。

编辑:我添加了黄瓜版本和cucumberOpts: enter image description here

enter image description here

2 个答案:

答案 0 :(得分:0)

我相信你的文件夹结构很少。你可以试试下面的东西。我相信你需要在黄瓜的同一目录中有功能和step_definitions文件夹才能找到步骤定义。如果没有,您可以提供--require参数并明确告诉黄瓜您的step_definitions在下面的位置

 cucumber.js test/features/paypalreg.feature --require test/features/step_definitions/ --format=pretty

enter image description here

答案 1 :(得分:0)

根本原因是针对不同的Cucumber版本,它有不同的模式来编写步骤定义。

您使用的是Cucumber 4,但您的步骤定义模式适用于黄瓜1。

对于黄瓜3和4,步骤定义应如下所示:

var {Given, Then, When} = require('cucumber');

When(/^i load the app$/, function(){
    ...
});

More detail

对于Cucumber 2,步骤定义应如下所示:

var {defineSupportCode} = require('cucumber');

defineSupportCode(function ({ Given, When, Then }) {

    When(/^i load the app$/, function () {
        ...;
    });

}

More detail

对于黄瓜1,步骤定义应如下所示:

module.exports = function() {

    this.When(/^i load the app$/, function() {
        ...;
    });

};

More detail

我们在Cucumber 4中删除了pretty格式,因此您无法在cucumberOpts中对其进行配置:

cucumberOpts: {
   format: ['pretty']
}

如果您想要pretty,请安装另一个套餐:cucumber-pretty,并将其添加到cucumberOptions中:

cucumberOpts: {
   format: ['node_modules/cucumber-pretty']
}

More detail