【问题标题】:Get all test fails from Mocha从 Mocha 获取所有测试失败
【发布时间】:2018-11-08 11:17:49
【问题描述】:
因此,我使用 Mocha 进行了大约 600 次测试,现在我需要自动运行所有测试并获取所有错误和成功计数,以将此信息发送到监控服务器。
我可以制作 bash 脚本,它运行测试并将 Mocha 日志写入文件,然后解析此日志文件并获取成功计数和失败日志(例如通过 grep),但这是一个太脏的解决方案。
我更喜欢以编程方式运行测试并从 Mocha 获取失败消息和成功测试数组之类的信息来解决此问题,但我找不到任何有关此的文档。
那么,如何解决这个问题呢?
【问题讨论】:
标签:
javascript
node.js
testing
mocha.js
qa
【解决方案1】:
创建一个文件,比如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/**)
afterEach 钩子会累积所有测试结果,然后您可以在after 钩子中对它们做一些事情。 --file 标志只是确保将挂钩添加到所有测试套件中。