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.