我想在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
。它应用于所有测试,不知道自定义数据(例如需要保存的响应(,并且应该通过全局变量与它们交互。
有一个自定义报告程序,它接收一个通过和失败测试的列表。它应用于所有测试,不知道测试中定义的自定义数据,并且不能访问测试范围中的全局变量,因此不能用于收集响应。