Есть ли способ пропустить все тесты в наборе, если определенные условия не срабатывают - JavaScript Jasmine?
Есть ли способ пропустить все тесты в наборе, если определенные условия не пройдут? Т.е.) если веб-страница не открывается, нет смысла запускать остальные тесты, потому что все они зависят от открытия веб-страницы до запуска каких-либо тестов.
Мы можем использовать pending(), чтобы пропустить текущий тест, но есть ли способ сразу же пропустить все тесты в наборе или тестах ниже, если все остальные тесты зависят от значения checkCondition?
Я попытался добавить pending() внутри блока beforeAll, чтобы попытаться пропустить все тесты, поскольку beforeAll запускается раньше чего-либо.
Пожалуйста помоги! Я использую WebdriverIO и Jasmine. Спасибо!
let checkCondition = false;
describe(`My Test Suite`, () => {
beforeAll(async () => {
if (checkCondition) {
console.log(`in true block`);
} else {
console.log('Skip tests below'); // HELP <-- since checkCondition is false, all tests below should fail
pending();
}
});
it(`Test 1`, () => {
if (checkCondition != undefined) {
console.log("checkCOndition is defined")
} else {
pending();
}
});
it(`Test 2`, () => {
if (checkCondition) {
// check
} else {
console.log('Skip this test');
pending();
}
});
it(`Test 3`, () => {
console.log("skip this test too")
});
});
1 ответ
Если вам нужно установить
checkCondition
in, а затем, в конечном итоге, оттуда, кажется, что проблема с этим на github (https://github.com/jasmine/jasmine/issues/1533)
В противном случае, если
checkConditon
можно узнать до начала набора тестов (я не понимаю, почему), вы можете просто заменить свой
beforeAll
с чем-то вроде
if (!checkCondition) return
Или просто пропустите весь звонок, чтобы
describe
в первую очередь