2016-01-18 19 views
0

我有一個步驟,它看起來像這樣:黃瓜JS不運行的一步,但稱其通過然後跳過後續步驟

this.When(/^I send a (get|put|post|delete) request to (.*) with payload$/, function(requestType, route, callback) {...}); 

我有一個使用它像這樣的東西:

And I send a post request to users/password/change with payload 

對於一些因爲步驟中的代碼永遠不會運行。我挖空了它,只是把一個控制檯日誌,然後回調,它永遠不會輸出。之前的步驟沒有錯誤,並且返回正常,所以我很困惑爲什麼這一步似乎永遠不會執行,而是在成功運行時標記爲跑步者,然後跳過所有後續步驟。

所以有沒有人見過這樣的事情之前或不知道的方式來調試,找出什麼回事?我試圖捕捉未處理的異常並輸出它們,似乎沒有東西從那裏開始。已經嘗試在它之前放置虛擬步驟,並且不會改變它。

我使用0.9.2黃瓜,0.12的NodeJS,並通過webstorm黃瓜亞軍正在運行,但我得到正常的CLI亞軍相同的結果。

回答

0

我不知道這是否會幫助每個人,但由於某種原因,這個問題是到這似乎永遠是一個問題模棱兩可的比賽,我不知道,如果規則在某些版本的改變,但我有以下錯誤,當用不同的格式化程序運行它。

The following steps have multiple matching definitions: 

"I send a post request to users/password/change with payload" matches: 
/^I send a (get|put|post|delete) request to (.*)$/    # features\step_definitions\shared-step-definitions.js:99 
/^I send a (get|put|post|delete) request to (.*) with payload$/ # features\step_definitions\shared-step-definitions.js:126 

我改變了這一爲:

下面的步驟有多個匹配的定義:

/^I send a (get|put|post|delete) request to (.*)$/ 
/^I send a (get|put|post|delete) request with payload to (.*)$/ 

一切工作正常,但它使用的做工精細,無論如何,希望這可以幫助別人。