J'ai un tas de spécifications qui échouent suite à un changement architectural assez important. J'aimerais travailler à les corriger un par un en étiquetant chacun avec «focus».
Est-ce que jasmine.js a une fonctionnalité comme celle-ci? J'ai juré d'avoir lu à un moment donné que c'était le cas, mais je ne le vois pas dans la documentation.
Réponses:
Vous pouvez exécuter une seule spécification en utilisant l'URL de la spécification
Maintenant, vous pouvez exécuter uniquement la spécification entière par cette URL
http://localhost:8888?spec=MySpec
et un premier test avechttp://localhost:8888?spec=MySpec+function+1
la source
describe("MySpec", ...)
et non celui-cidescribe("MySpec blah blah", ...)
:? Il semble faire une correspondance de sous-chaîne.http://localhost:8888?spec=function+1
devrait fonctionner aussi (souvent pas besoin de spécifier MySpec)fdescribe
,fit
Lorsque vous utilisez Karma, vous ne pouvez activer qu'un seul test avec
fit
oufdescribe
(iit
etddescribe
dans Jasmine avant 2.1).Cela ne fonctionne que
Spec1
:Cela ne fonctionne que
testA
:la source
fdescribe
etfit
: github.com/jasmine/jasmine/commit/…iit
ilddescribe
y a des ajouts de Karma, pas de Jasmine.xit
etfit
enit
sont difficiles à lire et sujette à l' erreur?Dans le noyau depuis 2.1 avec
fit
etfdescribe
.la source
Pour tous ceux qui tombent dessus, une meilleure approche, que vous pouvez configurer à partir du code lui-même, consiste à utiliser ce plugin: https://github.com/davemo/jasmine-only
Il vous permet de définir l'exclusivité des spécifications directement sur le code comme ceci:
Il y a eu une longue discussion pour ajouter ceci au noyau de Jasmine, voir: https://github.com/pivotal/jasmine/pull/309
Si vous utilisez Jasmine via Karma / Testacular, vous devriez déjà avoir accès à
ddescribe()
etiit()
la source
fdescribe
etfit
- "f" signifie "concentré". Voir aussi jasmine.github.io/2.1/focused_specs.htmlIl y a plusieurs façons de le faire.
Il y a: la fonctionnalité de Jasmine Focused Specs (2.2): http://jasmine.github.io/2.2/focused_specs.html
Les spécifications de mise au point feront en sorte qu'elles soient les seules spécifications qui fonctionnent. Toute spécification déclarée avec fit est focalisée.
Cependant, je n'aime pas vraiment l'idée de modifier mes tests (fit et fdescribe) pour les exécuter de manière sélective. Je préfère utiliser un testeur comme karma qui peut filtrer les tests en utilisant une expression régulière.
Voici un exemple utilisant grunt .
Si vous utilisez gulp (qui est mon lanceur de tâches préféré), vous pouvez passer des arguments dans gulp-karma avec des yargs et des modèles de correspondance en définissant la configuration de karma.
Un peu comme ça:
Voir mon essentiel: https://gist.github.com/rimian/0f9b88266a0f63696f21
Alors maintenant, je peux exécuter une seule spécification en utilisant la description:
Mon essai local: (Exécuté 1 sur 14 (ignoré 13))
Voir également: https://github.com/karma-runner/karma-jasmine
la source
Vous pouvez créer toutes vos spécifications à l'avance, mais les désactiver avec
xdescribe
etxit
jusqu'à ce que vous soyez prêt à les tester.la source
Avec Jasmine autonome (2.0.0), sur le spec_runner.htlm, je pourrais cliquer sur une spécification spécifique et me concentrer sur cette spécification. J'aurais dû remarquer cette fonctionnalité plus tôt.
la source
Pas exactement ce que vous avez demandé, mais l'ajout
iit
testera uniquement cette spécification particulière et ignorera toutes les autres dans le fichier,ddescribe
fonctionne de la même manière. Ainsi, vous pouvez vous concentrer sur une spécification particulière en utilisantiit
ouddescribe
la source
C'est la réponse la plus simplifiée avec un exemple pratique. Même dans fdescribe, vous pouvez exécuter quelques blocs it en l'utilisant. f signifie concentration.
De plus, dans un bloc non fdescribe qui est juste décrit, vous pouvez sélectionner uniquement des blocs spécifiques en les marquant comme adaptés.
Veuillez exécuter le code ci-dessous et observer le journal de la console, lire également les commentaires dans le code. Lisez l'article de cet auteur, cela aide aussi. https://davidtang.io/2016/01/03/controlling-which-tests-run-in-jasmine.html
la source