为不同的功能执行具有相同步长定义的cucumberjs时出错

时间:2016-03-02 13:40:41

标签: node.js gherkin e2e-testing cucumberjs

// signin.test.js
...
this.Then(/^I should be redirected to my dashboard$/, function() {
  var self = this;
  return this.browser
    .getUrl().then(function(eUrl) {
      eUrl.should.be.equal(self.url);
    })
    .end();
});
...

这与注册功能完全相同。

// signup.test.js
...
this.Then(/^I should be redirected to my dashboard$/, function() {
  var self = this;
  return this.browser
    .getUrl().then(function(eUrl) {
      eUrl.should.be.equal(self.url);
    })
    .end();
});
...

运行测试时,sign-in功能出现此错误:

enter image description here

但是,如果我

,测试将正常运行
  • 选项1:注释掉signin.test.js或signup.test.js的上述部分内容。
  • 选项2:将说明更改为其他文字以使其不同,例如I should be redirected to my dashboard 12345

这是cucumberjs的错误吗?

无论如何都可以解决这个问题。

1 个答案:

答案 0 :(得分:0)

您确定错误是否表示未定义的步骤定义?我似乎更有可能报告一个含糊不清的步骤定义。截至v0.9.0ambiguous step definitions are no longer allowed

0.9.0

Breaking changes

* catch ambiguous step definitions (Charlie Rudolph)
* remove use of domain (Charlie Rudolph)

在任何情况下,实现相同的代码块都是一种不好的做法,您应该尽量避免。请参阅DRY Principle。我建议你选择选项1并完全删除重复的步骤定义。