Protractor: Existe-t-il un moyen d'exécuter un seul test à partir de la ligne de commande ?

Créé le 11 oct. 2013  ·  18Commentaires  ·  Source: angular/protractor

J'aimerais transmettre un seul nom de test à exécuter à partir de la ligne de commande. Est-ce possible? (nouveau au jasmin/rapporteur, toute aide serait appréciée)

Commentaire le plus utile

@Xotabu4
cela fonctionne pour moi maintenant.
rapporteur --specs='tests/e2e/login.js' --grep="SingleLoginTest"

Cependant, je ne suis pas en mesure d'ajouter l'option GREP dans gruntfile maintenant.

Tous les 18 commentaires

Vous pouvez exécuter un seul fichier avec --specs mydir/mytestfile.js

L'exécution d'un seul test n'est actuellement pas prise en charge - dans l'attente d'une prise en charge unique dans Jasmine 2.0.

Pour la postérité, Jasmine 2 est sorti : https://github.com/pivotal/jasmine/releases/tag/v2.0.0

Existe-t-il donc un moyen d'exécuter un seul test à partir de la ligne de commande du rapporteur, maintenant que Jasmine 2 est sorti ?

Voir les notes sur les difficultés de mise à jour vers Jasmine 2 ici : #362

Et pour info, il ne le supporte pas.seulement :(

Alors... maintenant qu'il est supporté dans Jasmine 2.0 : comment ça se passe avec Protractor ?

Pour tous ceux qui cherchent à le faire dans Jasmine 2.0+, utilisez ddescribe ou iit pour isoler une seule fonction describe() ou it(). Je n'ai trouvé cela documenté nulle part, mais je l'ai découvert via cette question StackOverflow

Pour Karma, vous devez maintenant utiliser fdescribe ou fit ('f' est pour le focus). Cependant, dans le contexte du rapporteur, rien ne fonctionne...

Sans fit et xit, comment pouvons-nous exécuter un seul test dans un rapporteur ?

Je ne sais pas à partir de la ligne de commande, mais vous pouvez le faire en utilisant l'API comme ceci

var jasmine = new Jasmine();
jasmine.specFiles = ['/home/sg/myproject/foo/bar/someSpec.js'];
jasmine.execute();

Salut à tous, @juliemr

Est-il possible d'exécuter un seul test ou groupe de tests (fichier non complet) dans protactor depuis la ligne de commande ?

J'ai essayé d'utiliser l'option --grep, mais cela ne fonctionne pas.

Note : Utilisation du framework : 'jasmine2'

@ sumittech17
Salut, je ne sais pas si cela aiderait - je marque les tests que je veux exécuter dans un fichier avec - fdescribe ou fit - cela ignore tous les tests sauf marqué, alors vous pouvez exécuter votre rapporteur avec --specs mydir/mytestfile. js
Cela fonctionne pour moi, mais vous oblige à garder un œil sur ne pas commit fit ou fdescribe to repo.

@Xotabu4
cela fonctionne pour moi maintenant.
rapporteur --specs='tests/e2e/login.js' --grep="SingleLoginTest"

Cependant, je ne suis pas en mesure d'ajouter l'option GREP dans gruntfile maintenant.

@Xotabu4 Merci beaucoup ... cela a fonctionné pour moi !!!!

Dans ma suite de tests, j'ai imbriqué des describe certains ont des crochets afterAll ou beforeAll . Je remarque qu'en mode --grep , j'ai des crochets beforeAll et afterAll de tests non liés en cours d'exécution. Ce n'est pas le cas avec mocha .

Fondamentalement, l'événement avant/après les hooks est exécuté bien que le test lui-même soit ignoré. Quelqu'un d'autre trouve cela gênant ?

Salut @sakovias , j'ai le même problème avec l'utilisation de --grep. Avez-vous trouvé une solution pour ignorer beforeAll pour les spécifications qui ne correspondent pas à la valeur grep ?

C'est ce qui fonctionne pour moi, si je veux exécuter un bloc 'it' particulier à partir d'un costume particulier

rapporteur protractor.conf.js --suite test-suite-name --grep="it-block-name"

Vous pouvez faire tout cela, mais j'ai trouvé beaucoup plus pratique d'avoir un script wrapper qui injecte essentiellement les fichiers que je veux tester sur le protractor.config.ts. Ensuite, j'écris un test par fichier et j'utilise une convention de nommage de bon sens comme :

user/create-article.e2e.ts
user/update-article.e2e.ts
utilisateur/supprimer-article.e2e.ts

Alors maintenant, je peux exécuter des choses comme

./run-e2e.sh user/create

Parfois, c'est plus facile de construire des choses soi-même...

Vous pouvez faire tout cela, mais j'ai trouvé beaucoup plus pratique d'avoir un script wrapper qui injecte essentiellement les fichiers que je veux tester sur le protractor.config.ts. Ensuite, j'écris un test par fichier et j'utilise une convention de nommage de bon sens comme :

user/create-article.e2e.ts
user/update-article.e2e.ts
utilisateur/supprimer-article.e2e.ts

Alors maintenant, je peux exécuter des choses comme

./run-e2e.sh user/create

Parfois, c'est plus facile de construire des choses soi-même...

Bien sûr, cela fonctionnera, je ne pensais pas que c'était un bon moyen d'y parvenir, comme si l'on devait modifier une propriété config.js qu'il / elle devait modifier aux trois endroits. Plus le fichier de configuration sera plus la fragilité.

Cette page vous a été utile?
0 / 5 - 0 notes