Comment puis-je me concentrer sur un spec-en jasmine.js?
J'ai un tas de défaut de spécifications à partir d'un assez grand changement architectural. J'aimerais travailler sur les fixer, un par un, par le marquage de chaque une avec "focus".
N'jasmine.js ont une fonctionnalité de ce genre? J'ai juré que je l'ai lu à un moment qu'il n'mais je ne le vois pas dans la doc.
- récente réponse souligne que cela a été introduit pour Jaswine dans la v2.1
Vous devez vous connecter pour publier un commentaire.
Vous pouvez exécuter une seule spec, en utilisant l'url pour le spec
Maintenant, vous pouvez exécuter simplement l'ensemble de la spec par cette url
http://localhost:8888?spec=MySpec
et le premier test avechttp://localhost:8888?spec=MySpec+function+1
describe("MySpec", ...)
et pas celui-ci:describe("MySpec blah blah", ...)
? Il semble être de faire une correspondance de sous-chaîne.http://localhost:8888?spec=function+1
devrait travailler trop (souvent n'avez pas besoin de spécifier MySpec)fdescribe
,fit
Lors de l'utilisation de Karma, vous pouvez activer qu'un seul essai avec
fit
oufdescribe
(iit
etddescribe
dans Jasmine avant 2.1).Cela ne fonctionne
Spec1
:Cela ne fonctionne
testA
:fdescribe
etfit
: github.com/jasmine/jasmine/commit/...iit
etddescribe
sont des ajouts de Karma, pas de Jasmin.xit
etfit
enit
sont difficiles à lire et sujettes à erreur?describe
,it
permis globals. Puis jshint va se plaindre si il trouvefdescribe
,fit
,xdescribe
,xit
etc.Le noyau de l' depuis 2.1 avec
fit
etfdescribe
.Pour quiconque de tomber sur ce, une meilleure approche, que vous pouvez configurer à partir du code lui-même, est l'utilisation de ce plugin: https://github.com/davemo/jasmine-only
Il permet de définir les spécifications de l'exclusivité de droit sur le code comme ceci:
Il y a eu une longue discussion pour obtenir cela, ajouté à Jasmine de base, voir: https://github.com/pivotal/jasmine/pull/309
Si vous arrive d'être en utilisant Jasmin via Karma/Testacular vous devriez déjà avoir accès à
ddescribe()
etiit()
fdescribe
etfit
-- "f" sens "porté". Voir aussi jasmine.github.io/2.1/focused_specs.htmlIl existe quelques façons dont vous pouvez faire.
Y est: le Jasmin est la caractéristique Porté Spécifications (2.2): http://jasmine.github.io/2.2/focused_specs.html
En se concentrant spécifications doivent faire en sorte qu'ils sont les seuls spécifications de cette série. Tout spec déclaré avec ajustement est concentré.
Cependant, je n'aime pas vraiment l'idée d'éditer mes tests (ajustement et fdescribe) pour les exécuter de manière sélective. Je préfère utiliser un test runner comme karma qui peut filtrer les tests à l'aide d'une expression régulière.
Voici un exemple d'utilisation grunt.
Si vous utilisez gulp (qui est ma préférée task runner), vous pouvez passer des arguments dans gulp-karma avec yargs et correspondent à des motifs par la définition du karma config.
Un peu comme ceci:
Voir mon résumé: https://gist.github.com/rimian/0f9b88266a0f63696f21
Alors maintenant, je peux courir une seule spec, à l'aide de la description:
Mon local de test: (Exécuté 1 de 14 (sauté 13))
Voir aussi: https://github.com/karma-runner/karma-jasmine
Vous pouvez créer vos spécifications à l'avant, mais les désactiver avec
xdescribe
etxit
jusqu'à ce que vous êtes prêt à tester.Avec stand-alone de Jasmin(2.0.0), sur la spec_runner.htlm, je pourrais cliquez sur un spécifique spec et de se concentrer sur un spec. Je devrais avoir remarqué cette fonctionnalité plus tôt.
Pas exactement ce que vous avez demandé, mais l'ajout de
iit
permettra de tester uniquement le spec et ignorer tous les autres dans le fichier,ddescribe
fonctionne de la même manière. Vous pouvez donc vous concentrer sur un spec en utilisantiit
ouddescribe