web-dev-qa-db-fra.com

Exécuter un seul fichier de test

Existe-t-il un moyen d'exécuter ng test pour un seul fichier plutôt que pour l'ensemble de la suite de tests? Dans l'idéal, j'aimerais obtenir la boucle de rétroaction la plus rapide possible lorsque j'édite un fichier, mais karma exécute la suite entière à chaque sauvegarde, ce qui est un peu lent lorsque vous créez une suite de tests assez volumineuse.


Ceci est différent de Comment exécuter seulement une 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 les mêmes caractéristiques techniques de Jasmine, mais la nature de la question est légèrement différente.

94
Elliot Larson

J'ai découvert que Jasmine vous permettait de préfixer les méthodes describe et it avec un f (pour le focus?). Donc, fdescribe et fit. Si vous utilisez l'un ou l'autre, le karma n'exécutera que les tests appropriés. Donc, pour focaliser le fichier actuel, vous pouvez simplement prendre le niveau supérieur describe et le changer en fdescribe. Fonctionne pour mes besoins.

192
Elliot Larson

Il est à noter que vous pouvez désactiver un test particulier sans commenter de xdescribe et xit

xdescribe('Hello world', () => { 
  xit('says hello', () => { 
    expect(helloWorld())
        .toEqual('Hello world!');
  });
});

Et comme quelqu'un l'a déjà dit, si vous voulez vous concentrer sur un test, alors fdescribe et fit

fdescribe('Hello world', () => { 
  fit('says hello', () => { 
    expect(helloWorld())
        .toEqual('Hello world!');
  });
});
15
DiPix

Utiliser npm lance le test fichier.component.spec.ts fonctionnera pour moi dans la version angular 7.

1
Niraj