Entonces, he estado buscando esto por todas partes, encontré respuestas "similares" aquí, pero no exactamente lo que quiero.
Ahora mismo, si quiero probar un solo archivo con karma, tengo que hacerlo fit()
, fdescribe()
en el archivo en cuestión ...
Sin embargo, lo que sí quiero es poder llamar a 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?)
javascript
gruntjs
gulp
karma-runner
karma-jasmine
Gonçalo Vieira
fuente
fuente
karma run -- --grep=testDescriptionFilter
¿Lo intentaste ? He visto esto sugerido antes, pero no puedo verificar de primera mano que funcione. (Si estuviera en casa, lo intentaría antes de sugerir. Como no puedo, estoy comentando en lugar de responder) :)it
? ¿No hay posibilidad de utilizarlo para un archivo?Respuestas:
Primero necesitas iniciar karma server con
Luego, puede usar grep para filtrar una prueba específica o describir un bloque:
fuente
karma
ejecutadokarma start
antes de ejecutarkarma run
karma run
. Parecía bastante claro que el cartel sabía cómo iniciar Karma y ejecutar todas las pruebas y solo buscaba la sintaxis con respecto al filtrado.Aunque
--files
ya no se admite, 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
fuente
Esta opción ya no se admite en 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
fuente karma-runner: cli.js
fuente karma-runner: config.js
fuente
config.files = config.files.map(createPatternObject).map(createPatternMapper(basePathResolve))
que podría deberse al hecho de que estoy usando requireJS