En mi caso, tengo un archivo de prueba que contiene unos cientos de pruebas usando broma
describe('my test-suite', () => { test('test 1', () => { expect(1).toBe(1); }); //another hundred tests... });Lo que debo hacer ahora es ejecutar estas pruebas para diferentes parámetros, especificados en un archivo de configuración. Más en detalles, en mi caso, el archivo de configuración especifica algunos parámetros externos para servicios externos (piense como parámetros de acceso a la base de datos) e idealmente me gustaría mantener exactamente la misma estructura que ya tengo, ejecutando las mismas pruebas varias veces contra todos estos servicios externos.
Idealmente, debería poder hacer algo como:
const paramList = [{ name: 'service 1' }, { name: 'service 2' }]; describe('my parallel test-suite', () => { it.each(paramList)("testing against $name", ({name}) => { //just what I had before describe('my test-suite', () => { test('test 1', () => { expect(1).toBe(1); }); //another hundred tests... }); }); }); Idealmente, el siguiente paso sería reemplazar test.each con test.concurrent.each y poder ejecutar mis pruebas en paralelo contra todos los diferentes servicios externos.
Desafortunadamente, con el código (y la versión 27.4.7 de Jest) arriba, lo que obtengo es:
Cannot nest a describe inside a test. Describe block "my test-suite" cannot run because it is nested within "service service 1". Tests cannot be nested. Test "test 1" cannot run because it is nested within "service service 1".¿Hay alguna manera de lograr lo que estoy tratando de hacer aquí?
No puede ejecutar un bloque de descripción en each bucle. Ejecute cada prueba en su propio ciclo y luego funcionará. Algo como esto:
describe('my parallel test-suite', () => { it.each(paramList)("testing against $name", ({name}) => { expect(1).toBe(1); }); it.each(paramList)("another test against $name", ({name}) => { expect(2).toBe(2); }); //another hundred tests... });