L'intégration de Rapporteur avec Yeoman par Grunt
Je souhaite intégrer le Rapporteur, avec un échafaudage produit par Yeoman. J'ai suivi un tuto et celui-ci, le plus vieux scenario-runner
a été utilisé pour la mise en place e2e tests (via grunt
).
Je voudrais mettre à jour mon échafaudage et l'utilisation Rapporteur de la place.
Toutes les pensées?
- L'ajout d'un fichier de config comme rapporteur du guide de mise en route, dit avec l'emplacement de vos fichiers de spec et ensuite installer le rapporteur est le chemin à parcourir. Ou vous pouvez vérifier linemanjs qui est comme yeoman et a rapporteur intégré 🙂
- Pour AngularJs yeoman est bon, je le pense parce que c'est comeup de construire avec bt il est à l'aide de karma pour e2e tests et je veux utiliser rapporteur, comment intégrer le rapporteur dans gruntjs fichier dans yeoman
Vous devez vous connecter pour publier un commentaire.
Installer
protractor
etgrunt-protractor-runner
denpm
:Créer un fichier de config pour le rapporteur (
protractor.conf.js
), changementspecs
etbaseUrl
à vos fichiers de test et le serveur de test:Mise à jour de votre
Gruntfile.js
, ajoutez le code suivant après le karma de la tâche:Ajouter le rapporteur de la tâche en cours de test
Télécharger et de commencer à le sélénium serveur:
(Dans Windows:)
Mise à jour de votre
package.json
, ajoutez le code suivant après"devDependencies"
. Cela permettra d'exécuter la commande aprèsnpm install
de sorte que vous n'avez pas besoin de vous rappeler à chaque fois.Exécuter le test à l'aide de grunt
Si vous voulez rapporteur pour démarrer le serveur pour vous, retirez
de
protractor.conf.js
, puis en exécutantgrunt test
va commencer autonome sélénium exemple pendant le test et de le quitter après l'exécution de la suite de test.webdriver-manager start
, le blocage de la grunt build jusqu'à webdriver est prêt à accepter les connexions.grunt.loadNpmTasks("grunt-protractor-runner")
au-dessus de lagrunt.registerTask
npm install
(étape n ° 6) échouera si la ngp les paquets sont installés avec--production
interrupteur (sans devDependencies). Une solution consiste à changer de script d'installation pour"install": "if [ -f node_modules/protractor/bin/webdriver-manager ]; then node node_modules/protractor/bin/webdriver-manager update; fi;"
. Cependant, je ne l'aime pas parce qu'il n'est pas solution multi-plateforme. Quelqu'un a une idée de comment le modifier pour le rendre compatible, et quenpm install
fonctionne quand devDependencies ne sont pas installés?npm install
Résumé: gist.github.com/nikolamilenkovic/fd9aab4d08b5550af4b8 lot de Changements.json à:"scripts": { "install": "grunt webdriver-manager:update" }
Une chose à ajouter à l'existant réponse, si vous voulez démarrer le Sélénium serveur automatiquement, vous devez également spécifier l'emplacement de votre seleniumServerJar et chromeDriver (si vous utilisez google Chrome) comme autrement, les tests ne fonctionnera pas jusqu'à ce que vous démarrez manuellement le Sélénium serveur (assurez-vous d'exécuter "webdriver-gestionnaire de mise à jour" à partir de la ligne de commande en premier):
args
pour un mac?Comme @user2172816 mentionne dans sa réponse à l' - en laissant de
seleniumAddress: 'http://localhost:4444/wd/hub'
de votre rapporteur, la configuration est généralement la cause de Rapporteur pour démarrer une Sélénium exemple pour vous.Comme alternative, vous pouvez utiliser grunt-rapporteur-webdriver pour démarrer le Sélénium:
1) Installer et enregistrer grunt-rapporteur-webdriver
2) Ajouter la ligne suivante dans votre Grunt définition de la fonction:
3) Ajouter l'exemple suivant rapporteur webdriver tâche:
4) Ajouter
protractor_webdriver
à votretest
tâche avant d'exécuter le rapporteur, par exemple