jestjs - node_env - ¿Cómo ejecutar las pruebas de Jest secuencialmente?
jest react install (4)
Estoy ejecutando pruebas de Jest a través de la
npm test
.
Jest ejecuta pruebas en paralelo de forma predeterminada.
¿Hay alguna forma de hacer que las pruebas se ejecuten secuencialmente?
Tengo algunas pruebas que llaman al código de terceros que se basa en cambiar el directorio de trabajo actual.
Funcionó para mí asegurando la ejecución secuencial de pruebas bien separadas para módulos:
1) Mantenga las pruebas en archivos separados, pero sin
spec/test
en los nombres.
|__testsToRunSequentially.test.js
|__tests
|__testSuite1.js
|__testSuite2.js
|__index.js
2) El archivo con el conjunto de pruebas también debería verse así (testSuite1.js):
export const testSuite1 = () => describe(/*your suite inside*/)
3) Importarlos a
testToRunSequentially.test.js
y ejecutar con
--runInBand
:
import { testSuite1, testSuite2 } from ''./tests''
describe(''sequentially run tests'', () => {
testSuite1()
testSuite2()
})
Las opciones de CLI no están documentadas pero son accesibles ejecutando el comando
jest --help
.
Luego, verá la opción que está buscando:
--runInBand
.
Todavía me estoy familiarizando con Jest, pero parece que los bloques de descripción se ejecutan sincrónicamente mientras que los bloques de prueba se ejecutan de forma asincrónica. Estoy ejecutando múltiples bloques de descripción dentro de una descripción externa que se parece a esto:
describe
describe
test1
test2
describe
test3
En este caso,
test3
no se ejecuta hasta que
test2
se complete porque
test3
está en un bloque de descripción que sigue al bloque de descripción que contiene
test2
.
Utilice el corredor de prueba en serie:
npm install jest-serial-runner --save-dev
Configure jest para usarlo, por ejemplo, en jest.config.js:
module.exports = { ..., runner: ''jest-serial-runner'' };
Puede usar la función de proyecto para usarla solo para un subconjunto de pruebas.