Cucumber-js: 从 1.0.0 迁移到 1.2.0 时的问题

创建于 2016-06-29  ·  12评论  ·  资料来源: cucumber/cucumber-js

你好,

更新黄瓜版本后,我遇到了一个问题,并且不完全了解如何解决它:

通过 registerHandler 附加的黄瓜事件处理程序现在传递关联的对象而不是事件
getPayloadItem 将在下一个主要版本中删除

C:dev\Topic Analyst\Frontend\node_modules\cucumber\lib\cucumber\runtime\event_broadcaster.js:30
抛出错误;
^
函数接受回调并返回一个承诺

0 次通过(3.30s)

[10:43:31]“黄瓜”在 3.51 秒后出错
[10:43:31] 插件“gulp-webdriver”出错
信息:
wdio 以代码 1 退出

任何的想法? 这是吞咽黄瓜的问题还是……?

最有用的评论

这是黄瓜:

在您的一个钩子或步骤中,您将回调作为函数参数,然后没有调用它:
例如

this.Before(函数(场景,回调){
返回一些东西();
});

因此,如果您返回一个承诺,只需摆脱“回调”作为参数 => 函数(场景){...}
或者
最后只使用你的回调:callback()

所有12条评论

这是黄瓜:

在您的一个钩子或步骤中,您将回调作为函数参数,然后没有调用它:
例如

this.Before(函数(场景,回调){
返回一些东西();
});

因此,如果您返回一个承诺,只需摆脱“回调”作为参数 => 函数(场景){...}
或者
最后只使用你的回调:callback()

不,我们没有做那样的事情,而是挂钩到 gulp-cucumber ''beforeFeature" 挂钩。这可能是一个问题。我想 gulp-cucumber 使用回调?

你能提供你的 beforeFeature 代码吗?

您可以在以下位置找到它:

https://github.com/vgamula/gulp-cucumber

你能让 gulp 打印一个堆栈跟踪吗? 这样我们就可以确定有问题的代码在哪里。 最近的一个变化是 registerHandler 将抛出与@SkadeGlad 描述的类似的错误。

我很害怕,但这就是我看到的所有堆栈跟踪:(

@vytautas-pranskunas- 这可以关闭吗? 看来 wdio-cucumber-framework 已经更新了

是的。 谢谢

使用 cucumber-js 1.3.1 ,我收到以下警告:

cucumber event handlers attached via registerHandler are now passed the associated object instead of an event
getPayloadItem will be removed in the next major release

我的钩子是:

var Hooks = function() {

  this.BeforeFeature(function (event, callback) {
    Context.feature = event.getPayloadItem('feature');
    callback();
  });

  this.BeforeScenario(function (event, callback) {
    Context.scenario = event.getPayloadItem('scenario');
    callback();
  });

  this.BeforeStep(function (event, callback) {
    Context.step = event.getPayloadItem('step');
    callback();
  });

};

我需要改变什么?

该线程已被自动锁定,因为它关闭后没有任何最近的活动。 请针对相关错误打开一个新问题。

此页面是否有帮助?
0 / 5 - 0 等级