Подтвердить что ты не робот

Остановить тест жасмина после первого ожидания

Я знаком с проверками python unittest, где, если утверждение терпит неудачу, этот тест помечен как "сбой", и он переходит к другим тестам. Жасмин, с другой стороны, будет продолжать все ожидать, даже если один из них потерпит неудачу. Как я могу заставить Жасмин прекратить обработку теста после первого ожидания?

it ("shouldn't need to test other expects if the first fails", function() {
    expect(array.length).toBe(1);

    // don't need to check this if the first failed.
    expect(array[0]).toBe("foo");
});

Я думаю об этом неправильно? У меня есть несколько тестов с большим количеством expect, и кажется, что отходы отображают все трассировки стека, когда только первое неправильно.

4b9b3361

Ответ 1

Жасмин не поддерживает неудачу на ранней стадии, в одной спецификации. Идея состоит в том, чтобы дать вам все сбои в случае, если это поможет выяснить, что действительно неправильно в вашей спецификации.

Ответ 2

@Gregg ответ был правильным для последней версии Jasmine в то время (v2.0.0).

Однако с тех пор эта новая функция была добавлена ​​ в v2.3.0:

Разрешить пользователю прекратить выполнение спецификаций при неудачном ожидании (Fixes # 577)

Он активируется добавлением throwFailures=true в строку запроса страницы бегуна, например:

http://localhost:8000/?throwFailures=true

Ответ 3

В соответствии с комментариями https://github.com/jasmine/jasmine/issues/414 Я понял, что для этого существуют 2 решения: https://github.com/radialanalytics/protractor-jasmine2-fail-whale https://github.com/Updater/jasmine-fail-fast

Я только начал использовать транспортер-жасмин-2-fail-whale, потому что у него больше функций. Хотя для снятия скриншотов в случае сбоев теста я в настоящее время использую protractor-jasmine2-html-репортер.