J'ai un job Jenkins qui exécute des tests Selenium sur Browserstack via le framework Nightwatch.js. Nous avons une suite complète de tests que nightwatch exécute dans des processus séparés, et nous avons besoin d'un moyen de ramener la valeur de réussite/échec à Jenkins après que tous les tests aient été exécutés.Echec d'un job Jenkins lorsque l'assertion de test de nightwatch échoue dans Browserstack
J'ai essayé d'utiliser le crochet teardown
Nightwatch pour exécuter un morceau de code à la fin de chaque module avec if(this.results.failed) { take action }
, mais je ne peux pas comprendre quelle action je dois prendre afin de rendre l'échec accessible à le travail de Jenkins. Mon idée initiale était de créer une variable d'environnement, et la définir sur false chaque fois qu'un test échoue, mais je pense que chaque processus s'exécute dans un sous-shell séparé, donc les variables créées/modifiées par le module de test ne sont pas accessibles.
Ma deuxième idée était de créer un compteur dans le module globals, mais cette valeur ne s'incrémente pas comme prévu lorsqu'elle est référencée par une méthode globale after
.
Je n'ai pas beaucoup d'expérience avec nodejs. mais si vous pouviez sortir avec un code d'état autre que 0, votre job jenkins échouera. essayez ceci dans {{action}} –
J'ai effectivement essayé ceci, nous utilisons le module gulp-nightwatch, et il s'avère que si vous quittez le test avec le statut! = 0, gulp-nightwatch n'envoie aucun détail à la console. Il imprime seulement que gulp-nightwatch a rencontré une erreur, et notre reporter pour cette suite de tests échoue. – imthefrizzlefry