我对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调用钩子。
请给我建议。
谢谢,西米特
发布于 2017-02-10 16:38:49
我不确定,但我认为它和它的意思完全一样。这个函数'registerListener‘不存在。那个方法是你写的吗?因为它绑定到您的JsonOutputHook。您还可以检查/黄瓜/lib/listener,以查看该方法是否存在。另外,如果您使用atom作为文本编辑器,您可以在项目中搜索该方法(我确信其他文本编辑器也可能具有此功能)。至于如何调用钩子,这应该在他们的git (files/hooks.md)上发现的精彩文档中。
https://stackoverflow.com/questions/35236963
复制相似问题