with unit test nodejs node framework async javascript mocha

javascript - unit - ¿Cómo realizar una única prueba con mocha?



tdd mocha chai (7)

Yo uso Mocha para probar mis cosas de JavaScript. Mi archivo de prueba contiene 5 pruebas. ¿Es posible ejecutar una prueba específica (o conjunto de pruebas) en lugar de todas las pruebas en el archivo?


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 () - string-grepping“) si elimina el patrón glob (por ejemplo, ./test/**/*.spec.js ) de su mocha .opts, respectivamente crean una copia, sin:

node_modules/.bin/mocha --opts test/mocha.single.opts test/self-test.spec.js

Aquí está mi mocha.single.opts (solo es diferente si se pierde la línea global mencionada anteriormente)

--require ./test/common.js --compilers js:babel-core/register --reporter list --recursive

Fondo: aunque puede anular los distintos modificadores del archivo opts (comenzando con -- ) no puede anular el globo global . Ese enlace también tiene algunas explicaciones.

Sugerencia: si node_modules/.bin/mocha confunde, use el paquete local mocha. También puedes escribir solo mocha , si lo tienes instalado globalmente.

Y si desea las comodidades de package.json : Aún así: quite el globo **/* -ish de sus mocha.opts , insértelos aquí, para todas las pruebas, mocha.opts lejos para la prueba única:

"test": "mocha ./test/**/*.spec.js", "test-watch": "mocha -R list -w ./test/**/*.spec.js", "test-single": "mocha $1", "test-single-watch": "mocha -R list -w $1",

uso:

> npm run test

respectivamente

> npm run test-single -- test/ES6.self-test.spec.js

(Cuidado con el -- !)


Dependiendo de su patrón de uso, es posible que solo desee utilizarlo. Usamos el estilo TDD; se parece a esto:

test.only(''Date part of valid Partition Key'', function (done) { //... }

Sólo esta prueba se ejecutará desde todos los archivos / suites.


Hola las soluciones anteriores no funcionaron para mí. La otra forma de ejecutar una sola prueba es

mocha test/cartcheckout/checkout.js -g ''Test Name Goes here''

Esto ayuda a ejecutar un caso de prueba desde un solo archivo y con un nombre específico.


No estoy seguro de por qué el método grep no me funciona cuando uso la prueba npm. Esto funciona sin embargo. También necesito especificar la carpeta de prueba también por alguna razón.

prueba de npm - prueba / sometest.js


Si está usando la npm test (usando scripts package.json) use un extra -- para pasar el parámetro a través de mocha

por ejemplo, npm test -- --grep "my second test"

EDITAR : Parece que --grep puede ser un poco quisquilloso (probablemente dependiendo de los otros argumentos). Usted puede:

Modificar el paquete.json:

"test:mocha": "mocha --grep /"<DealsList />/" .",

O alternativamente, use --bail que parece ser menos exigente

npm test -- --bail


Trate de usar la opción --grep de --grep :

-g, --grep <pattern> only run tests matching <pattern>

Puede utilizar cualquier expresión regular de JavaScript válida como <pattern> . Por ejemplo, si tenemos test/mytest.js :

it(''logs a'', function(done) { console.log(''a''); done(); }); it(''logs b'', function(done) { console.log(''b''); done(); });

Entonces:

$ mocha -g ''logs a''

Para ejecutar una sola prueba. Tenga en cuenta que este codigo a través de los nombres de todas las invocaciones describe(name, fn) y it(name, fn) .

Considere el uso de llamadas describe() anidadas para el espacio de nombres para facilitar la localización y selección de conjuntos particulares.


npm test <filepath>

p.ej :

npm test test/api/controllers/test.js

aquí ''test / api / controllers / test.js'' es filepath.