Cucumber JS 不是 运行 步骤但说它通过了然后跳过后续步骤

Cucumber JS not running step but saying its passed then skipping subsequent steps

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

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

出于某种原因,步骤中的代码永远不会 运行。我把它挖空了,只放了一个控制台日志,然后回调,它永远不会得到输出。之前的步骤没有错误,returns 很好,所以我很困惑为什么这一步似乎永远不会执行,但在 运行ner 上被标记为成功,然后跳过所有后续步骤。

所以有没有人以前见过这样的事情或知道调试方法以找出发生了什么事?我已经尝试捕获未处理的异常并输出它们,但似乎没有任何事情从那里开始。已尝试在它之前放置虚拟步骤,但不会改变它。

我正在使用 0.9.2 cucumber、0.12 nodeJS,并且正在通过 webstorm cucumber 运行ner 运行ning,尽管我在普通 CLI 运行ner 上得到相同的结果.

我不确定这是否对每个人都有帮助,但出于某种原因,这个问题归结为模棱两可的匹配,这似乎从来都不是问题,我不确定规则是否在某些版本中发生了变化,但我遇到了以下错误当 运行 使用不同的格式化程序时。

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 (.*)$/

一切正常,虽然它以前工作正常,希望这对其他人有帮助。