你好,
更新黄瓜版本后,我遇到了一个问题,并且不完全了解如何解决它:
通过 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()
不,我们没有做那样的事情,而是挂钩到 gulp-cucumber ''beforeFeature" 挂钩。这可能是一个问题。我想 gulp-cucumber 使用回调?
你能提供你的 beforeFeature 代码吗?
您可以在以下位置找到它:
你能让 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();
});
};
我需要改变什么?
该线程已被自动锁定,因为它关闭后没有任何最近的活动。 请针对相关错误打开一个新问题。
最有用的评论
这是黄瓜:
在您的一个钩子或步骤中,您将回调作为函数参数,然后没有调用它:
例如
this.Before(函数(场景,回调){
返回一些东西();
});
因此,如果您返回一个承诺,只需摆脱“回调”作为参数 => 函数(场景){...}
或者
最后只使用你的回调:callback()