Existe-t-il un moyen d'exécuter ng test
pour un seul fichier au lieu de pour toute la suite de tests? Idéalement, j'aimerais obtenir la boucle de rétroaction la plus rapide possible lorsque je modifie un fichier, mais karma
exécute toute la suite à chaque sauvegarde, ce qui est un peu lent lorsque vous créez une suite de tests suffisamment grande.
Ceci est différent de Comment exécuter une seule spécification de test avec angular-cli en ce que cette question concerne l'exécution d'une spécification individuelle. Il s'agit d'exécuter un fichier individuel. La solution implique la même fonctionnalité de spécification Jasmine, mais la nature de la question est légèrement différente.
angular
jasmine
angular-cli
karma-runner
Elliot Larson
la source
la source
Réponses:
J'ai découvert que Jasmine vous permet de préfixer
describe
et deit
méthodes avec unf
(pour le focus?). Alors,fdescribe
etfit
. Si vous utilisez l'un ou l'autre de ces derniers, karma n'exécutera que les tests appropriés. Ainsi, pour concentrer le fichier actuel, vous pouvez simplement prendre le niveau supérieurdescribe
et le changer enfdescribe
. Fonctionne pour mes besoins.la source
Il est à noter que vous pouvez désactiver un test particulier sans commenter
xdescribe
etxit
Et comme quelqu'un l'a déjà dit, si vous voulez vous concentrer sur un test alors
fdescribe
etfit
la source
Ceci peut être réalisé ces jours-ci via l'
include
option. https://angular.io/cli/test#optionsC'est une correspondance globale, donc à titre d'exemple:
Je ne peux pas le trouver dans les notes de version 8.1.0 , mais @Swoox mentionne ci-dessous qu'il s'agit d'une fonctionnalité après la version cli
8.1.0
. Merci d'avoir compris cela.la source
J'ai trouvé qu'il y
ng test
avait une option supplémentaire--include
que vous pouvez utiliser afin de pouvoir exécuter un test pour un seul fichier, ou pour un répertoire particulier, ou pour un tas de fichiers:ng cli docs
la source
Vous pouvez accéder à
src/test.ts
et modifier la ligne suivante:const context = require.context('./', true, /\.spec\.ts$/);
à
const context = require.context('./', true, /**yourcomponent.component**\.spec\.ts$/);
la source
Extension de code Visual Studio
Le moyen le plus simple est d'utiliser l' extension vscode-test-explorer avec ses enfants angular-karma-test-explorer et jasmine-test-adapter , vous obtiendrez une liste des tests en cours à exécuter un par un si vous le souhaitez:
C'est la même réponse que j'ai donnée à cette question , il y a plus de détails ici.
la source
Utilisation de ng test --main file.spec.ts
la source
Vous devez y aller
src/test.ts
et pouvez modifier le code de numéro de ligne 18 suivant:à
la source
Fonctionne si vous spécifiez votre fichier de spécifications en tant que paramètre.
Par exemple:
ng test foo.spec.ts
J'espère que cela t'aides.
la source