Comment faire pour exécuter un seul test spec avec angulaires-cli
J'ai Angular2 projet de construction avec Angulaires-CLI (bêta 20).
Est-il un moyen d'exécuter des tests, contre une seule dans le fichier de spécification?
J'ai l'habitude d'avoir un projet basé sur Angular2 de démarrage rapide, et je pourrais ajouter manuellement des spécifications de jasmin fichier. Mais je ne sais pas comment mettre cela en place à l'extérieur du karma tests ou comment limiter le karma des tests à des fichiers spécifiques avec Angulaires-CLI construit.
Vous devez vous connecter pour publier un commentaire.
Chacun de vos
.spec.ts
fichier de tous ses tests regroupés dansdescribe
bloc comme ceci:describe('SomeComponent', () => {...}
Vous pouvez facilement exécuter juste ce seul bloc, par la préfixation de la
describe
nom de la fonction avecf
:fdescribe('SomeComponent', () => {...}
Si vous avez une telle fonction, aucune autre
describe
blocs sera exécuté.Btw. vous pouvez faire la même chose avec
it
=>fit
et il y a aussi une "liste noire" de la versionx
. Donc:fdescribe
etfit
causes seulement fonctions marqué cette façon de fairexdescribe
etxit
causes tous mais fonctions marqué cette façon de faireConfigurer
test.ts
fichier à l'intérieur desrc
dossier:Remplacer
/\.spec\.ts$/
avec le nom de fichier que vous souhaitez tester. Par exemple:/app.component\.spec\.ts$/
Cela va lancer le test uniquement pour
app.component.spec.ts
.Vous pouvez tester uniquement les fichiers spécifiques à la Angulaire de la CLI (le
ng
commande) comme ceci:Autres docs sont à https://angular.io/cli/test
Note que bien que cela fonctionne pour les fichiers de la bibliothèque, il ne fonctionnera pas pour les composants angulaires/services/etc. C'est parce que angulaires des fichiers de dépendances sur d'autres fichiers (à savoir
src/test.ts
Angulaire 7). Malheureusement, le--main
drapeau de ne pas prendre de multiples arguments.component.spec.ts
fichier, nous allons voir que les tests ne jamais le coup d'envoi:Error: AsyncTestZoneSpec is needed for the async() test helper but could not be found. Please make sure that your environment includes zone.js/dist/async-test.js
... je suis sûr que plus de solution de contournement peut être piraté ensemble, mais il est quelque chose d'être conscient de, car l'installation faite danssrc/main.ts
et ses importations n'est pas disponible dans ce cas.ng t
le test, je suis en train d'écrire passe mais quand je lance le fichier spécifique, il donne une erreur. TypeError: Cannot read property 'getComponentFromError', null à TestBedViewEngine._initIfNeeded (node_modules/@angular/core/fesm2015/testing.js:3112:1) à TestBedViewEngine.get (node_modules/@angular/core/fesm2015/testing.js:3230:1) à la Fonction.get (node_modules/@angular/core/fesm2015/testing.js:2960:1) à UserContext.<anonyme> (src/app/de la barre de temps.service.spec.ts:14:45)"Si vous voulez être en mesure de contrôler les fichiers sont sélectionnés à partir de la ligne de commande, j'ai réussi à faire ce Angulaire 7.
En résumé, vous devez installer
@angular-devkit/build-angular:browser
, puis de créer un personnalisé webpack plugin pour passer le test de fichier regex par. Par exemple:angulaire.json - changer le générateur de test de
@angular-devkit/build-angular:browser
et personnaliser le fichier de config:extra-webpack.config.js - créer un webpack de configuration qui lit l'expression régulière à partir de la ligne de commande:
test.ts - modifier la spécification
Pour ensuite les utiliser comme suit pour remplacer la valeur par défaut:
J'ai documenté le résumé des épisodes précédents ici, toutes mes excuses à l'avance pour les types et les mis-liens. Crédit à la réponse ci-dessus par @Aish-Anu pour me pointer dans la bonne direction.
Ce travail est pour moi Angulaire 7. Il est basé sur l' --option principale de la ng de commande. Je ne suis pas sûr si cette option est sans-papiers et, éventuellement, l'objet de changements, mais cela fonctionne pour moi. J'ai mis une ligne dans mon colis.fichier json dans les scripts de la section. Il y a à l'aide de l' --option principale de la ng commande test, je spécifiez le chemin d'accès à l' .spec.ts fichier à exécuter. Par exemple
Vous pouvez exécuter le script que vous exécutez un tel script. Je le lance dans Webstorm en cliquant sur "test 1" dans le mécanisme national de prévention de la section.
J'ai résolu ce problème par moi-même à l'aide de grunt. J'ai le grognement script ci-dessous. Ce que fait le script est prend le paramètre de ligne de commande de l'épreuve spécifique à exécuter et crée une copie de test.ts et met de ce test spécifique de nom à l'.
Pour exécuter cette, première installer grunt-cli à l'aide de:
Mettre le ci-dessous grunt dépendances dans votre forfait.json:
Pour l'exécuter ci-dessous enregistrez le fichier en tant que grunt Gruntfile.js dans votre dossier racine. Puis, à partir de la ligne de commande exécuter en tant que:
Cela va lancer l'application.composante.spec.ts.
Grunt fichier est comme ci-dessous:
Chaque
spec.ts
fichier de tous ses tests regroupés en décrire bloc:Par défaut c'est comme:
Si vous souhaitez exécuter un particulier des cas de test:
D'Ignorer un fichier, vous pouvez utiliser "x":
Plus De Détails:
xdescribe
va exclure les spécifications de l'exécution.fdescribe
sera d'abord de l'exécution de ces spécifications. si vous avez à la fois la fdescribe specs sera exécuté, et le reset est ignoré