如何通过cucumberjs生成json输出

时间:2016-02-06 03:17:51

标签: json cucumberjs

我对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

1 个答案:

答案 0 :(得分:0)

我不确定,但我认为这正是它的意思。该函数'registerListener'不存在。你写那个方法了吗?因为它绑定到你的JsonOutputHook。您还可以检查/ cucumber / lib / listener以查看该方法是否存在。此外,如果您使用atom作为文本编辑器,您可以在项目中搜索该方法。(我很确定其他文本编辑器也可能具有此功能)。至于你如何调用应该在他们的git repo(https://github.com/cucumber/cucumber-js/blob/master/docs/support_files/hooks.md)上找到的奇妙文档中的钩子。