Транспортир, жасмин и тест на остановку при первой неудаче

Пытаясь выяснить, как сделать определенные операторы ожидания jasmine зависимыми от предыдущего оператора ожидания, я обнаружил, что до Jasmine 2.3.0 способа не было. (см. Остановить тест на жасмин после сбоя первого ожидания) Однако Jasmine 2.3 .0 добавил параметр stopSpecOnExpectationFailure, который, если установлен в значение true, остановит тест при первом сбое.

Взволнованный этой перспективой, я изменил свой conf.js, включив в него опцию:

/*
 * conf.js
 */
exports.config = {
    framework: 'jasmine',
    specs: ['search-spec.js'],
    useAllAngular2AppRoots: true,
    jasmineNodeOpts: {
        stopSpecOnExpectationFailure: true
    }
};

Но у меня это не сработало.

В моем тесте у меня было:

/**
 * Test option from select element is selected
 */
function verifyOptionSelected(option) {
   var myEl = $('select[value="' + option + '"]';

   expect(myEl.isPresent()).toBe(true, 'Option, ' + option + ', is not a value in the dropdown list. (It might be the text.)');

   expect(myEl.isSelected()).toBe(true, 'Option, ' + option + ', is not selected as expected.');
}

В приведенном выше коде будут предприняты попытки выполнения обоих операторов expect, но мне не нужно пытаться выполнить второе, если первое не сработает.

Кто-нибудь из вас понял это с жасмином?

(Да, я знаю о jasmine-bail-fast и protractor-fail-fast. Однако, на мой взгляд, использование встроенной функции - лучшее решение.)


person Machtyn    schedule 19.05.2016    source источник


Ответы (1)


Судя по тому, что я вижу в исходном коде protractor и jasmine-npm (используемый protractor бегун жасмина), он не так просто, как добавить в конфигурацию параметр узла stopSpecOnExpectationFailure или stopOnFailure jasmine. В protractor должны быть внесены изменения для поддержки новой опции stopSpecOnExpectationFailure jasmine node. Создайте запрос о проблеме / функции в Protractor системе отслеживания проблем.


Я также пытался вызвать функцию throwOnExpectationFailure, установить значение stopSpecOnExpectationFailure throw jasmine.getEnv() в onPrepare(), но ничего из этого не сработало. Возможно, мне чего-то не хватает и есть способ включить настройку.

person alecxe    schedule 20.05.2016