¿Hay alguna manera de omitir todas las pruebas en una suite si fallan ciertas condiciones? Es decir, si la página web no se abre, no tiene sentido ejecutar el resto de las pruebas, porque todas dependen de la apertura de la página web antes de ejecutar cualquier prueba.
Podemos usar la función "pendiente()" para omitir la prueba actual, pero ¿hay alguna manera de omitir todas las pruebas en el conjunto o las pruebas a continuación de inmediato si todas las demás pruebas dependen de que checkCondition sea verdadera?
Intenté agregar pendient() dentro del bloque beforeAll, para tratar de omitir todas las pruebas ya que beforeAll se ejecuta antes que nada.
¡Por favor ayuda! Estoy usando WebdriverIO y Jasmine. ¡Gracias!
let checkCondition = false; describe(`My Test Suite`, () => { beforeAll(async () => { // EDIT - returnBoolean() is another method that logs into the // page and returns true or false let setCheckCondition = returnBoolean(); if (setCheckCondition) { checkCondition = true; 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") }); });Si tiene que configurar checkCondition en beforeAll y luego abortar desde allí, parece haber un problema continuo al respecto en github ( https://github.com/jasmine/jasmine/issues/1533 )
De lo contrario, si se puede conocer checkConditon antes de que comience el conjunto de pruebas (no veo por qué no), simplemente puede reemplazar su beforeAll con algo como
if (!checkCondition) return O simplemente omita toda la llamada para describe en primer lugar
EDITAR: puede omitir todo el conjunto de pruebas de esa manera:
let checkCondition = returnBoolean(); if (checkCondition) { describe(`My Test Suite`, () => { it(`Test 1`, () => { // run test 1 normally }); it(`Test 2`, () => { // run test 2 normally }); it(`Test 3`, () => { // run test 3 normally }); }); } else { console.log("checkCondition is false. Skipping all tests!"); }