2016-03-02 2 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.0, ambiguous 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 и полностью удалить определение повторяющегося шага.