【问题标题】:Error when execute cucumberjs with same step definition for different features为不同功能执行具有相同步骤定义的 cucumberjs 时出错
【发布时间】:2016-03-02 13:40:40
【问题描述】:
// 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 功能出现此错误:

但是,如果我这样做,测试将正常运行

  • 选项一:注释掉上述signin.test.js或signup.test.js的js部分。
  • 选项 2:将描述更改为其他文本以使其不同,例如 I should be redirected to my dashboard 12345

这是cucumberjs的bug吗?

有没有办法解决这个问题。

【问题讨论】:

    标签: node.js gherkin e2e-testing cucumberjs


    【解决方案1】:

    您确定该错误表示未定义的步骤定义吗?在我看来,它更可能报告了一个模棱两可的步骤定义。截至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 并完全删除重复的步骤定义。

    【讨论】:

      猜你喜欢
      • 2018-04-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-09-23
      • 2022-10-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多