Проверьте, не прошел ли тест в 'afterEach' Jest без жасмина - PullRequest
1 голос
/ 23 января 2020

Я хочу иметь возможность проверить, прошел ли один из моих тестов Jest успешно или нет. Существует еще один вопрос SO по этой теме c, но в решении используется Jasmine, он довольно хакерский и ни в коем случае не гарантирует продолжение работы с будущими версиями Jasmine или Jest. Я ищу решение этой проблемы, которое не зависит от большой зависимости, такой как Жасмин.

1 Ответ

1 голос
/ 29 января 2020

Вы можете отслеживать статус теста, создав флаг в наборе тестов.

Объяснение.

Создайте флаг testStatus в describe block и две переменные счетчика (если вы хотите получить счетчик Failed и passed тестовых случаев). И установите начальное значение флага testStatus на false.

describe("Should count the test", () => {
  let testStatus = false;
  let passTests = 0;
  let failedTest = 0;

  //.... test cases

});

И в каждом тестовом примере в конце тестового набора установите значение flag testStatus на true.

it("Should fail/Pass", () => {
    expect(false).toBe(true);
    testStatus = true;
});

Строка после expect будет выполняться только в том случае, если контрольные примеры выполнены успешно, в противном случае значение flag останется false.

А теперь в afterEach мы можем проверить, является ли значение flag (testStatus) истинным или ложным.

если значение равно false, тестовый случай не пройден, а если значение true означает, что тестовый пример выполнен успешно.

И сбросьте значение flag (testStatus) обратно на false.

afterEach(() => {
    if (testStatus) {
      passTests += 1;
    } else {
      failedTest += 1;
    }

    testStatus = false;
});

Надеюсь, это будет полезно.

Живой пример.

Edit Track the test case status in jest

...