¿Cómo omitir programáticamente una prueba en mocha?

Resuelto Gajus asked hace 8 años • 17 respuestas

Tengo un código donde ciertas pruebas siempre fallarán en el entorno CI. Me gustaría desactivarlos según una condición ambiental.

¿Cómo omitir programáticamente una prueba en mocha durante la ejecución en tiempo de ejecución?

Gajus avatar Sep 23 '15 00:09 Gajus
Aceptado

Puede omitir pruebas colocando una x delante del bloque describe o it, o colocando una .skipdespués.

xit('should work', function (done) {});

describe.skip('features', function() {});

También puede ejecutar una sola prueba colocando un símbolo .onlyen la prueba. por ejemplo

describe('feature 1', function() {});
describe.only('feature 2', function() {});
describe('feature 3', function() {});

En este caso, solo se ejecutaría el bloque de característica 2.

No parece haber una forma de omitir pruebas mediante programación, pero podría simplemente hacer algún tipo de verificación en una beforeEachdeclaración y solo ejecutar la prueba si la bandera estaba configurada.

beforeEach(function(){
    if (wrongEnvironment){
        runTest = false
    }
}

describe('feature', function(){
    if(runTest){
         it('should work', function(){
            // Test would not run or show up if runTest was false,
         }
    }
}
KJ3 avatar Sep 22 '2015 18:09 KJ3

skip()Usa la función de Mocha

Se puede utilizar para deshabilitar estáticamente una prueba o un conjunto completo, o omitirlo dinámicamente en tiempo de ejecución.

A continuación se muestra un ejemplo de uso del tiempo de ejecución:

it('should only test in the correct environment', function() {
  if (/* check test environment */) {
    // make assertions
  } else {
    this.skip();
  }
});
Gajus avatar Sep 28 '2015 09:09 Gajus