web-dev-qa-db-fra.com

Karma: Exécuter un seul fichier de test à partir de la ligne de commande

Donc, j'ai cherché partout, j'ai trouvé des réponses "similaires" ici, mais pas exactement ce que je veux.

Pour le moment, si je veux tester un seul fichier avec du karma, je dois faire fit(), fdescribe() sur le fichier en question ...

Cependant, ce que je veux, c'est pouvoir appeler simplement le karma, avec le fichier de configuration, et le diriger vers un fichier spécifique. Je n'ai donc pas besoin de modifier le fichier, c'est-à-dire:

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

est-il possible de faire cela? Ou avec n'importe quel assistant? (en grognant ou en avalant?)

85
Gonçalo Vieira

Vous devez d’abord démarrer le serveur karma avec

karma start

Ensuite, vous pouvez utiliser grep pour filtrer un test spécifique ou décrire un bloc:

karma run -- --grep=testDescriptionFilter
52
bvaughn

Même si --files n'est plus pris en charge, vous pouvez utiliser une variable env pour fournir une liste de fichiers:

// 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))
  });
});

Puis dans la CLI:

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

Cette option n'est plus prise en charge dans les versions récentes de karma:

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

Le tableau de fichiers peut être redéfini à l'aide de la CLI en tant que tel:

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

ou échappé:

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

Références

6
Paul Sweatte