黄瓜JS没有运行步骤,但说它已通过,然后跳过后续步骤

时间:2016-01-18 19:29:31

标签: javascript node.js cucumber cucumberjs

我有一个看起来像这样的步骤:

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跑步者身上得到了相同的结果。

1 个答案:

答案 0 :(得分: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 (.*)$/

一切正常,虽然过去常常工作正常,希望这有助于其他人。