Cucumber-js: Como a opção paralela funcionará com o protocolo de evento?

Criado em 5 fev. 2018  ·  9Comentários  ·  Fonte: cucumber/cucumber-js

Os formatadores customizados que se conectam apenas a test-run-finished como o formatador JSON funcionam como pretendido quando paralelizados, mas os formatadores que usam eventos anteriores como test-(step|case)-started e são ordenados têm sua saída registrada fora da sequência, invalidando a estrutura do documento de saída. Há algo planejado para resolver isso? Pode-se armazenar a saída em bases por trabalhador e registrar tudo de uma vez no mestre depois de concluído?

Comentários muito úteis

Precisamos muito desse recurso !!!

Todos 9 comentários

Acho que cada evento deve conter informações suficientes para ser capaz de vinculá-lo a eventos anteriores, em vez de armazenamento em buffer.

Não tenho certeza de como isso funcionaria se apenas os eventos de 'fim' fossem interceptados, pois perderia o início da saída do teste. Para usar o formatador bonito e os executores de teste dos editores baseados no IntelliJ como exemplos, eles funcionam da seguinte maneira:

  1. Registre a declaração de 'abertura' no evento inicial, no caso de muito - Scenario: Foo , no caso de IntelliJ - comentário formatado do TeamCity #teamcity[testStarted]
  2. Execute o teste que imprime seus próprios registros após a saída inicial do formatador
  3. Registre a declaração de fechamento no evento final, pass/fail resumo ou ##teamcity[testFinished]

A ordem é importante para ter a declaração de abertura antes de qualquer coisa que o teste registra e a declaração de fechamento depois e nenhum outro teste deve registrar nada em paralelo a isso ou eles irão confundir qual saída pertence a qual teste. O armazenamento em buffer parece cuidar disso, pois cada saída será isolada e conectada ao mestre na operação atômica.

Podemos passar uma opção isParallel para formatadores personalizados para que saibam que a saída de coisas em eventos de caso de teste iniciado / etapa de teste ficará confusa e, portanto, eles só devem gerar saída em eventos de caso de teste concluído.

Precisamos de mais discussão sobre este assunto. Atualmente, o uso de qualquer formatador apresenta o risco de travar o cucumber runner devido a conflitos de E / S ao tentar gravar em um terminal. O formatador da barra de progresso seria ideal para o corredor paralelo, se ele apenas movesse a barra e relatasse um resumo no final.

O plano é fazer a transição para formatadores autônomos que consomem um fluxo de mensagens do pepino.

Veja o roteiro e dots-formatter e pretty-formatter (WIP) no monorepo

Precisamos muito desse recurso !!!

Olá! Existe alguma chance de executar o Pepino Js em paralelo com o repórter Allure? Quando tento executar com cucumber-js --parallel 2 -t @debug --format reporter.js: ./ dummy.txt Acabei de receber TypeError: Não é possível ler a propriedade 'sourceLocation' de indefinido
Agradeço antecipadamente!

Mesmo problema que @ yevgen-getalo aqui.

Fechar como v7.0.0 usa o novo protocolo de mensagens mencionado acima, onde $THING_started e $THING_finished eventos podem ser confiavelmente vinculados por meio de ids. O objeto eventDataCollector.query (uma instância de @cucumber/query ) pode ajudar em parte disso.

Esta página foi útil?
0 / 5 - 0 avaliações

Questões relacionadas

nicojs picture nicojs  ·  3Comentários

lamartire picture lamartire  ·  6Comentários

protoman92 picture protoman92  ·  3Comentários

jan-molak picture jan-molak  ·  4Comentários

jfstephe picture jfstephe  ·  4Comentários