javascript gruntjs gulp karma-runner karma-jasmine

javascript - Karma: ejecutar un único archivo de prueba desde la línea de comandos



gruntjs gulp (3)

Esta opción ya no es compatible con versiones recientes de karma:

ver https://github.com/karma-runner/karma/issues/1731#issuecomment-174227054

La matriz de archivos se puede redefinir utilizando la CLI como tal:

karma start --files=Array("test/Spec/services/myServiceSpec.js")

o escapó:

karma start --files=Array/(/"test/Spec/services/myServiceSpec.js/"/)

Referencias

Entonces, he estado buscando todo esto, encontré respuestas "similares" aquí, pero no exactamente lo que quiero.

En este momento, si quiero probar un solo archivo con karma, necesito hacer fit() , fdescribe() en el archivo en cuestión ...

Sin embargo, lo que sí quiero es poder simplemente llamar al karma, con el archivo de configuración, y dirigirlo a un archivo específico, por lo que no necesito modificar el archivo en absoluto, es decir:

karma run --conf karma.conf.js --file /path/to/specific/test_file.js

¿Es posible hacer esto? ¿O con algún ayudante? (¿usando gruñido o trago?)


Aunque --files ya no es compatible, puede usar una variable env para proporcionar una lista de archivos:

// karma.conf.js function getSpecs(specList) { if (specList) { return specList.split('','') } else { return [''**/*_spec.js''] // whatever your default glob is } } module.exports = function(config) { config.set({ //... files: [''app.js''].concat(getSpecs(process.env.KARMA_SPECS)) }); });

Luego en CLI:

$ env KARMA_SPECS="spec1.js,spec2.js" karma start karma.conf.js --single-run


Primero necesitas iniciar el servidor de karma con

karma start

Luego, puede usar grep para filtrar una prueba específica o describir un bloque:

karma run -- --grep=testDescriptionFilter