Automated tests 在TestCafe中,有没有一种方法可以知道hook之后的测试是通过还是失败?

Automated tests 在TestCafe中,有没有一种方法可以知道hook之后的测试是通过还是失败?,automated-tests,hook,e2e-testing,testcafe,Automated Tests,Hook,E2e Testing,Testcafe,当我的testcafe测试运行时,我试图通过RESTAPI(Zephyr)将测试标记为通过/失败。我想知道是否有可能在每个之后的或之后的钩子中知道测试是否通过/失败,以便我可以根据结果运行一些脚本 比如: 测试(…) .after(异步t=>{ if(testFailed==true){callApi(“我的测试失败”);} })我认为有两种方法可以解决您的任务。首先,不要订阅afterhook,而是创建自己的reporter或修改现有的reporter。请参阅以下文章:   最有趣的方法是r

当我的testcafe测试运行时,我试图通过RESTAPI(Zephyr)将测试标记为通过/失败。我想知道是否有可能在每个之后的或之后的钩子中知道测试是否通过/失败,以便我可以根据结果运行一些脚本

比如:

测试(…)
.after(异步t=>{
if(testFailed==true){callApi(“我的测试失败”);}

})
我认为有两种方法可以解决您的任务。首先,不要订阅
after
hook,而是创建自己的
reporter
或修改现有的
reporter
。请参阅以下文章:   最有趣的方法是
reportTestDone
,因为它接受
errs
作为参数,所以您可以在那里添加自定义逻辑

第二种方法是使用

您可以按以下方式编写测试:

test(`test`, async t => {
    await t.click('#non-existing-element');

    t.ctx.passed = true;
}).after(async t => {
    if (t.ctx.passed)
        throw new Error('not passed');
});

这里我在测试代码和钩子之间使用shared
passed
变量。如果测试失败,变量将不会被设置为true,并且我将在
hook之后的
中得到一个错误。

这可以从测试控制器中确定,测试控制器中嵌套了更多信息,只有在运行时才可见。包含测试中抛出的所有错误的数组如下所示

t.testRun.errs

如果填充了数组,则测试失败。

这正是我最终要做的(自定义报告器)。谢谢:)