Yo uso Mocha para probar mis cosas de JavaScript. Mi archivo de prueba contiene 5 pruebas. ¿Es posible ejecutar una prueba específica (o un conjunto de pruebas) en lugar de todas las pruebas en el archivo?
javascript
mocha
Misha Moroshko
fuente
fuente
--grep
solo se filtraba de las@
etiquetas.mocha some/test.js
) no funcionó en absoluto. ¡Gracias!logs a bcd
que contiene lalogs a
subcadena? Regexp^$
no funciona en 0.10.2.Dependiendo de su patrón de uso, puede que desee utilizar solamente . Usamos el estilo TDD; se parece a esto:
Solo esta prueba se ejecutará desde todos los archivos / suites.
fuente
it.only
.it.only
no va a funcionar junto congiven
de moka-testdata . Y es fácil olvidar eliminarlo más adelante.eslint-plugin-mocha
tiene una reglano-exclusive-tests
que te atrapará si olvidas eliminarlo.only
.Si está usando
npm test
(usando los scripts package.json) use un extra--
para pasar el parámetro a mochap.ej
npm test -- --grep "my second test"
EDITAR : Parece que
--grep
puede ser un poco quisquilloso (probablemente dependiendo de los otros argumentos). Usted puede:Modifique el paquete.json:
O, alternativamente, use el
--bail
que parece ser menos exigentefuente
--grep
puede ser un poco quisquilloso: intenta colocarlo justo después de mocha dentro de la entrada del script npm. Elsenpm test -- --bail
es útil para rescatar después de la primera prueba fallida--grep
salvar mi día! Muchas gracias. PD. Estoy en Windows, corriendonpm test -- --grep @tag
ejecutar una sola prueba –por nombre de archivo–
En realidad, también se puede ejecutar una única prueba de mocha por nombre de archivo (no solo por "it () - grepping de cadenas") si elimina el patrón glob (p
./test/**/*.spec.js
. Ej. ) De su mocha.opts, respectivamente, crea una copia, sin:Aquí está mi mocha.single.opts (solo es diferente al perder la línea glob mencionada anteriormente)
Antecedentes: si bien puede anular los diversos interruptores del archivo opts (comenzando por
--
), no puede anular el glob . Ese enlace también tiene algunas explicaciones.Sugerencia: si
node_modules/.bin/mocha
te confunde, usa el paquete local mocha. También puede escribir solomocha
, si lo tiene instalado globalmente.Y si desea las comodidades de
package.json
: Aún así: elimine el**/*
globo -ish de sumocha.opts
, insértelos aquí, para la prueba completa, déjelos lejos para la prueba individual:uso:
respectivamente
(¡cuidado
--
!)fuente
Warning: Could not find any test files matching pattern: $1
Solo use .only antes de 'describe', 'it' o 'context'. Ejecuto usando "$ npm run test: unit", y ejecuta solo unidades con .only.
fuente
Hola, las soluciones anteriores no funcionaron para mí. La otra forma de ejecutar una sola prueba es
Esto ayuda a ejecutar un caso de prueba desde un solo archivo y con un nombre específico.
fuente
-g
y no necesitará especificar un nombre de archivo. Si no puede escribir una expresión que sea lo suficientemente selectiva, eso significa que no está nombrando sus pruebas correctamente.p.ej :
aquí 'test / api / controllers / test.js' es filepath.
fuente
Puedes probar "it.only"
en esto solo se ejecutará el primero
fuente
--forbid-only
del servidor CI / build..only
tiene una tendencia a colarse en la rama principal y silenciar las otras pruebas, ya que simplemente no se ejecutarán más. Llegué a pensar en el flujo de trabajo de cambiar el código para ejecutar diferentes pruebas y una función anti. El corredor de prueba debe determinar qué pruebas deben ejecutarse (también conocidas como pruebas etiquetadas), no el desarrollador.it.only
Mirando https://mochajs.org/#usage vemos que simplemente use
trabajará. Puede omitir '.js' al final.
fuente
No estoy seguro de por qué el método grep no funciona para mí cuando uso la prueba npm. Sin embargo, esto funciona. También necesito especificar la carpeta de prueba también por alguna razón.
prueba npm - prueba / sometest.js
fuente
Consolide todas sus pruebas en un archivo test.js y su paquete json agregue scripts como:
Escriba el comando en su directorio de prueba:
fuente