Karma: Ejecutar un único archivo de prueba desde la línea de comandos
Así que, he estado buscando por todas partes para esto, encontré respuestas "similares" aquí, pero no exactamente lo que quiero.
Ahora mismo si quiero probar un solo archivo con karma, tengo que hacer fit()
, fdescribe()
en el expediente 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 grunt o ¿gulp?)
3 answers
Primero necesitas iniciar karma server con
karma start
Luego, puede usar grep para filtrar una prueba específica o describir un bloque:
karma run -- --grep=testDescriptionFilter
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2016-09-22 09:44:30
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
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2016-12-21 09:07:34
Esta opción ya no está soportada en versiones recientes de karma:
Véase https://github.com/karma-runner/karma/issues/1731#issuecomment-174227054
El array files se puede redefinir usando la CLI como tal:
karma start --files=Array("test/Spec/services/myServiceSpec.js")
O escapado:
karma start --files=Array\(\"test/Spec/services/myServiceSpec.js\"\)
Referencias
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2016-09-27 13:45:58