2016-03-02 135 views
0
// 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(); 
}); 
... 

而这与注册功能完全相同。对具有相同步骤定义的cucumberjs执行不同功能时出错

// 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:注释掉以上js signin.test.js或signup.test.js的一部分。
  • 选项2:将描述更改为另一个文本以使其不同,例如I should be redirected to my dashboard 12345

这是一个缺陷cucumberjs

反正有办法解决这个问题。

回答

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并完全删除重复的步骤定义。

相关问题