Как остановить транспортир от запуска дополнительных тестовых коробок при сбое?
Есть ли способ выйти из набора тестов и прекратить выполнение дополнительных тестовых случаев, если тестовый пример не работает в транспортир?
Ответы
Ответ 1
В случае jasmine
рамки тестирования вы не первый спрашиваете об этом.
Существуют релевантные открытые обсуждения/проблемы при выходе из первого отказа, опция --fail-fast
:
Короче говоря, это открытая проблема, и через некоторое время jasmine
будет встроена функциональность. В настоящее время используйте сторонний модуль jasmine-bail-fast
.
Кроме того, есть удобная установка жасмина realtimeFailure
. Если вы установите его на true
, это не пропустит весь тестовый прогон, но он будет показывать ошибки в реальном времени - сразу же после его появления - это может покрыть ваш прецедент. Установите его в jasmineNodeOpts
:
exports.config = {
seleniumAddress: 'http://127.0.0.1:4444/wd/hub',
...
jasmineNodeOpts: {
realtimeFailure: true
}
}
Ответ 2
jasmine-bail-fast
не работал в моем случае. Не уверен, что это связано с некоторыми конфликтами с моими другими плагинами отчетов.
Если у кого-то такая же проблема. Вы можете попробовать protractor-fast-fail
exports.config = {
plugins: [{
package: 'protractor-fail-fast'
}],
onPrepare: function() {
jasmine.getEnv().addReporter(failFast.init());
},
afterLaunch: function() {
failFast.clean();
}
}
Работала отлично для меня.
Ответ 3
Вот мое решение пропустить тесты при первом провале с помощью Jasmine 2 и Protractor.
Надеюсь, что это поможет.
exports.config = {
onPrepare: function () {
//skip tests after first fail
var specs = [];
var orgSpecFilter = jasmine.getEnv().specFilter;
jasmine.getEnv().specFilter = function (spec) {
specs.push(spec);
return orgSpecFilter(spec);
};
jasmine.getEnv().addReporter(new function () {
this.specDone = function (result) {
if (result.failedExpectations.length > 0) {
specs.forEach(function (spec) {
spec.disable()
});
}
};
});
}
};
Ответ 4
вам не нужны все сторонние плагины. Используйте native process.exit()
.
Пример кода:
it("test", function()
{
...
if(isExit)
{
browser.driver.close().then(function()
{
process.exit(1);
});
}
});
прибыль.