当所有测试成功或失败时,有什么方法可以向Jest添加回调吗



我想在describe块中的所有测试通过(或失败(时运行回调,Jest API中是否有钩子或其他东西可以执行此操作?我在文档中找不到任何适用的内容。

我提出了几个API请求来收集数据,以便将其与CSV文件中的数据进行比较,以区分内容。当测试全部通过时,我想将所有API响应保存在一个文件中,因此我需要某种"所有测试通过"回调

您可以通过编程方式运行jest。注意,这种方法是";破解";因为没有官方支持这样开玩笑。

请参阅:https://medium.com/web-developers-path/how-to-run-jest-programmatically-in-node-js-jest-javascript-api-492a8bc250de

有一个afterAll知道describe,但无论测试结果如何都会运行。它可以用作函数的一部分,以聚合来自测试的数据:

let responses;
testAndSaveResponses((name, fn) => {
if (!responses) {
responses = [];
} else {
afterAll(async () => {
if (!responses.includes(null)) {
// no errors, proceed with response processing
}
});
}
test(name, async () => {
try {
responses.push(await fn());
} catch (err) {
responses.push(null);
throw err;
}
});
});

应该使用它来代替Jesttest,并对其进行增强以支持多个describe作用域。

有自定义环境。Circus runner允许挂钩测试事件,尤其是finish_describe_definition。它应用于所有测试,不知道自定义数据(例如需要保存的响应(,并且应该通过全局变量与它们交互。

有一个自定义报告程序,它接收一个通过和失败测试的列表。它应用于所有测试,不知道测试中定义的自定义数据,并且不能访问测试范围中的全局变量,因此不能用于收集响应。

相关内容

最新更新