从Mocha获取所有测试失败

时间:2018-11-08 11:17:50

标签: javascript node.js testing mocha qa

因此,我用Mocha进行了约600项测试,现在我需要自动运行所有这些测试,并获取所有错误和成功计数,才能将此信息发送到监视服务器。

我可以制作bash脚本,该脚本运行测试并将Mocha日志写入文件,然后解析此日志文件并获取成功计数和失败日志(例如,通过grep),但这太脏了。

我更喜欢以编程方式运行测试,并从Mocha获得诸如失败消息和成功测试数组之类的内容来解决此问题,但是我找不到有关此的任何文档。

那么,如何解决这个问题呢?

1 个答案:

答案 0 :(得分:2)

创建一个文件,假设intercept-failures.js包含以下内容:

const failures = [];
const successes = [];

afterEach(function () {
    const title = this.currentTest.title;
    const state = this.currentTest.state;
    if (state === "passed") {
        successes.push(title)
    } else if (state === "failed") {
        failures.push(title)
    }
});

after(function () {
    console.log("failures", failures);
    console.log("successes", successes);
});

将标记--file intercept-failures.js添加到您的Mocha调用中(例如mocha --file intercept-failures.js test/**

afterEach挂钩会累积所有测试结果,然后您可以在after挂钩中使用它们进行某些操作。 --file标志只是确保将钩子添加到所有测试套件中。