我对cucumberjs和javascript很新,试图生成json输出。创建了一个钩子:
在我的JsonOutputHook.js
中有以下内容module.exports = function JsonOutputHook() {
try {
var Cucumber = require('cucumber');
var JsonFormatter = Cucumber.Listener.JsonFormatter();
var fs = require('fs');
JsonFormatter.log = function (json) {
fs.writeFile('./cucumber.json', json, function (err) {
if (err) throw err;
});
};
this.registerListener(JsonFormatter);
}
catch(err){
console.log('entered hook exception);
}
};
关注我的world.js
var hooks = require('./JsonOutputHook');
//calling it like this
hooks.call(this);
但是这样做会引发以下错误:
[TypeError:this.registerListener不是函数]
不确定为什么会出现此错误,我应该如何通过world.js调用该钩子。
建议。
由于 SIMIT
答案 0 :(得分:0)
我不确定,但我认为这正是它的意思。该函数'registerListener'不存在。你写那个方法了吗?因为它绑定到你的JsonOutputHook。您还可以检查/ cucumber / lib / listener以查看该方法是否存在。此外,如果您使用atom作为文本编辑器,您可以在项目中搜索该方法。(我很确定其他文本编辑器也可能具有此功能)。至于你如何调用应该在他们的git repo(https://github.com/cucumber/cucumber-js/blob/master/docs/support_files/hooks.md)上找到的奇妙文档中的钩子。