В TestCafe есть способ узнать, прошел ли тест или нет после хука? - PullRequest
0 голосов
/ 06 декабря 2018

Я пытаюсь пометить тесты как пройденные / не пройденные через API отдыха (Zephyr), пока выполняются мои тесты testcafe.Мне было интересно, можно ли в хуке после или afterEach узнать, пройден ли тест или нет, чтобы я мог запустить какой-нибудь скрипт на основе результата.

Что-то вроде:

test(...)
.after(async t => {
  if(testFailed === true) { callApi('my test failed'); }
})

1 Ответ

0 голосов
/ 10 декабря 2018

Я вижу два пути решения вашей задачи.Во-первых, не подписывайтесь на хук after, но создайте свой собственный reporter или измените существующий reporter.Пожалуйста, обратитесь к следующей статье: https://devexpress.github.io/testcafe/documentation/extending-testcafe/reporter-plugin/#implementing-the-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');
});

Здесь я использую общую переменную passedмежду тестовым кодом и крючком.Если тест не пройден, переменная не будет установлена ​​в true, и я получу ошибку в хуке after.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...