Ответ 1
Жасмин не поддерживает неудачу на ранней стадии, в одной спецификации. Идея состоит в том, чтобы дать вам все сбои в случае, если это поможет выяснить, что действительно неправильно в вашей спецификации.
Я знаком с проверками 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
, и кажется, что отходы отображают все трассировки стека, когда только первое неправильно.
Жасмин не поддерживает неудачу на ранней стадии, в одной спецификации. Идея состоит в том, чтобы дать вам все сбои в случае, если это поможет выяснить, что действительно неправильно в вашей спецификации.
@Gregg ответ был правильным для последней версии Jasmine в то время (v2.0.0).
Однако с тех пор эта новая функция была добавлена в v2.3.0:
Разрешить пользователю прекратить выполнение спецификаций при неудачном ожидании (Fixes # 577)
Он активируется добавлением throwFailures=true
в строку запроса страницы бегуна, например:
http://localhost:8000/?throwFailures=true
В соответствии с комментариями 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-репортер.