从摩卡获取所有测试失败
Get all test fails from Mocha
我用 Mocha 进行了大约 600 次测试,现在我需要自动 运行 所有这些并获取所有错误和成功计数以将此信息发送到监控服务器。
我可以制作 bash 脚本,运行s 测试 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/**
)
afterEach
钩子累积所有测试结果,然后你可以在 after
钩子中对它们做一些事情。 --file
标志只是确保将挂钩添加到所有测试套件。
我用 Mocha 进行了大约 600 次测试,现在我需要自动 运行 所有这些并获取所有错误和成功计数以将此信息发送到监控服务器。
我可以制作 bash 脚本,运行s 测试 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/**
)
afterEach
钩子累积所有测试结果,然后你可以在 after
钩子中对它们做一些事情。 --file
标志只是确保将挂钩添加到所有测试套件。