从 Mocha 获取所有测试失败

J. *_*ing 3 javascript testing qa mocha.js node.js

因此,我使用 Mocha 进行了大约 600 次测试,现在我需要自动运行所有测试并获取所有错误和成功计数以将此信息发送到监控服务器。

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

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

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

Lau*_*bys 7

创建一个文件,假设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);
});
Run Code Online (Sandbox Code Playgroud)

--file intercept-failures.js为您的 mocha 调用添加一个标志(例如mocha --file intercept-failures.js test/**

afterEach钩累计所有的测试结果,然后你可以用他们的东西after挂钩。该--file标志只是确保将钩子添加到所有测试套件中。