¿Cómo omitir programáticamente una prueba en mocha?
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?
Puede omitir pruebas colocando una x delante del bloque describe o it, o colocando una .skip
después.
xit('should work', function (done) {});
describe.skip('features', function() {});
También puede ejecutar una sola prueba colocando un símbolo .only
en 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 beforeEach
declaració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,
}
}
}
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();
}
});