Javascript 从摩卡获得所有测试失败

Javascript 从摩卡获得所有测试失败,javascript,node.js,testing,mocha.js,qa,Javascript,Node.js,Testing,Mocha.js,Qa,所以,我用Mocha做了大约600个测试,现在我需要自动运行所有测试,并获取所有错误和成功计数,以便将这些信息发送到监控服务器 我可以制作bash脚本,它运行测试并将Mocha日志写入文件,然后解析这个日志文件并获得成功计数和失败日志(例如grep),但这是一个太脏的解决方案 我更喜欢以编程方式运行测试,并从Mocha获得失败消息和成功测试数组之类的内容来解决这个问题,但我找不到任何关于这个问题的文档 那么,如何解决这个问题呢 创建一个包含以下内容的文件,比如intercept failures

所以,我用Mocha做了大约600个测试,现在我需要自动运行所有测试,并获取所有错误和成功计数,以便将这些信息发送到监控服务器

我可以制作bash脚本,它运行测试并将Mocha日志写入文件,然后解析这个日志文件并获得成功计数和失败日志(例如grep),但这是一个太脏的解决方案

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


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

创建一个包含以下内容的文件,比如
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);
});
在mocha调用中添加一个标志
--file intercept-failures.js
(例如
mocha--file intercept-failures.js test/**

每次之后的
after钩子累加所有测试结果,然后您可以在
after
钩子中对它们进行处理。
--file
标志只是确保钩子被添加到所有测试套件中