Cucumber-js: Comment l'option parallèle fonctionnera-t-elle avec le protocole d'événement ?

Créé le 5 févr. 2018  ·  9Commentaires  ·  Source: cucumber/cucumber-js

Les formateurs personnalisés qui ne s'accrochent qu'à test-run-finished comme le formateur JSON fonctionnent comme prévu lorsqu'ils sont parallélisés, mais les formateurs qui utilisent des événements antérieurs comme test-(step|case)-started et sont commandés voient leur sortie déconnectée de la séquence invalidant la structure du document de sortie. Y a-t-il quelque chose de prévu pour y remédier ? Peut-être tamponner la sortie par base de travail et tout enregistrer en même temps sur le maître une fois terminé ?

Commentaire le plus utile

Nous avons beaucoup besoin de cette fonctionnalité !!!

Tous les 9 commentaires

Je pense que chaque événement devrait contenir suffisamment d'informations pour pouvoir le lier aux événements précédents plutôt que de le mettre en mémoire tampon.

Je ne sais pas comment cela fonctionnerait si seuls les événements 'fin' étaient accrochés, car cela manquerait le début de la sortie du test. Pour utiliser de jolis formateurs et des exécuteurs de test des éditeurs basés sur IntelliJ comme exemples, ils fonctionnent comme suit :

  1. Instruction d'ouverture du journal lors de l'événement de démarrage, en cas de joli -- Scenario: Foo , en cas d'IntelliJ -- commentaire au format TeamCity #teamcity[testStarted]
  2. Exécutez le test qui imprime ses propres journaux après la sortie initiale du formateur
  3. Déclaration de clôture du journal sur l'événement de fin, résumé pass/fail ou ##teamcity[testFinished]

L'ordre est important car il faut avoir une instruction d'ouverture avant tout ce que le test enregistre et une instruction de fermeture après et aucun autre test ne doit enregistrer quoi que ce soit en parallèle, sinon ils confondront quelle sortie appartient à quel test. La mise en mémoire tampon semble s'en occuper car chaque sortie sera isolée et connectée au maître en opération atomique.

Nous pouvons passer une option isParallel aux formateurs personnalisés pour leur faire savoir que la sortie des choses sur les événements de test-cas-started / test-step sera brouillée et qu'elles ne devraient donc sortir que sur les événements de test-case-finished.

Nous avons besoin de plus de discussions sur cette question. Actuellement, l'utilisation de n'importe quel formateur risque de faire planter le coureur de concombre en raison de conflits d'E/S lors de la tentative d'écriture sur un terminal. Le formateur de barre de progression serait idéal pour le coureur parallèle, s'il ne faisait que déplacer la barre et rapporter ensuite un résumé à la fin.

Le plan est de passer à des formateurs autonomes qui consomment un flux de messages provenant de concombre.

Voir feuille de route et dots-formatter et pretty-formatter (WIP) dans le monorepo

Nous avons beaucoup besoin de cette fonctionnalité !!!

Salut! Existe-t-il une possibilité d'exécuter Cucumber js en parallèle avec Allure Reporter ? Lorsque j'essaie d'exécuter avec cucumber-js --parallel 2 -t @debug --format reporter.js:./dummy.txt, je viens d'obtenir TypeError: Impossible de lire la propriété 'sourceLocation' de undefined
Merci d'avance!

Même problème que @yevgen-getalo ici.

La fermeture en tant que v7.0.0 utilise le nouveau protocole de messages mentionné ci-dessus, où les événements $THING_started et $THING_finished peuvent être liés de manière fiable via des identifiants. L'objet eventDataCollector.query (une instance de @cucumber/query ) peut vous aider.

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