Big JS app test - en évitant les multiples karma.conf.js fichiers
- Je utiliser karma + jasmin + fantôme pour mon headless Javascript tests.
Le problème que j'ai c'est que j'ai vraiment un gros app composé de beaucoup de JS modules que je veux tester. J'ai donc besoin de coutume se moque de chaque cas et personnalisé comprend pour chaque cas.
karma.conf.js
me permet seulement d'avoir files
tableau qui se composent de modèles pour tous les fichiers à inclure ce qui est EXCELLENT si mon appli serait petit et pas une grande application avec une tonne de fichiers et les modules.
Ma solution pour l'instant de créer plusieurs karma.conf.js
fichiers pour chaque cas de test. Mais cette suce vraiment comme y ayant beaucoup de fichiers de configuration est un gros ballonnement et si je veux modifier un paramètre(comme autoWatch) j'aurais besoin de modifier tous les fichiers de configuration.
Mon autre solution - écrire gestionnaire personnalisé en face de karma.conf.js
à gérer d'autres paramètres(spec fichier ou dossier de contourner karma pour la recherche de fichier de configuration) et il suffit de construire files
tableau dynamiquement.
Maintenant le problème que je vois c'est que le karma s'exécute une seule fois et je serais limité à exécuter un test spec... et je NE VEUX PAS MODIFIER le KARMA lui-MÊME.
J'ai également étudié à l'aide de Grunt mais je n'ai pas trouvé un moyen de le faire fonctionner pour plusieurs cas de test.
Par le chemin, mon idéal, la structure pourrait être comme ceci:
d'avoir des fichiers:
test/specs/category/unit1_spec.js
test/mocks/category/unit1_mock.js
fichier de config:
files: [
{
'includes': [array_of_includes],
'spec': 'spec_file'
}
]
se moquer de fichier serait saisi automatiquement à partir approprié se moque de répertoire.
et que je pouvais faire karma start test/specs/category
et qu'il serait, de manière récursive d'exécuter les cas de test à l'intérieur du dossier.
tl;dr - je veux tester confortablement un grand app.
Je vous serais reconnaissant de tout suggestion pour gérer cette tâche.
Vous devez vous connecter pour publier un commentaire.
grunt-karma sons idéal pour vos besoins.
C'est un grognement multitâche qui permet de sous-tâches d'une même configuration, qui peut être remplacée par des sous tâches.
Le plugin consolide Karma de configuration dans un fichier unique.
Par exemple:
Utiliser un ENV variable à transmettre à l'argument de fichiers karma.conf.js:
Puis exécutez le karma comme suit:
Vous pouvez utiliser exiger des déclarations dans le karma des fichiers de configuration.
par exemple, dans votre karma fichier de configuration que vous pouvez faire:
Pour une meilleure réponse .. j'ai trouvé une autre solution à partir de ce lien: https://groups.google.com/forum/#!topic/karma-utilisateurs/uAf7TuVBmCQ
Avec le karma de 0,8 (stable)
Avec le karma de 0,9 (actuellement dans les canaries libération):
Cela a fonctionné pour moi à tirer dans un tableau de noms de fichiers à partir d'un autre fichier de configuration.
config
qui est exposée, paskarma
:module.exports = function(config) { config.set({ files: ['a', 'b', 'c'] }) }
. Puis danskarma1.conf.js
, en dehors d'avoirconfig.set
méthode, vous pouvez lireconfig.files
et toutes les autres valeurs et les modifier.J'ai remarqué que, quelle que soit l'argument que vous passer en ligne de commande vous obtenez cet argument en camelcase dans la config initiale de l'objet.
Cela vous permet d'utiliser une seule Karma fichier de configuration avec plusieurs configurations.