Cucumber-js: Podemos obter o nome do cenário em cada etapa da definição da etapa?

Criado em 20 jun. 2014  ·  7Comentários  ·  Fonte: cucumber/cucumber-js

Comentários muito úteis

Qual é a melhor e mais recente maneira de fazer isso agora? Obtendo nomes de etapas e tal?

Todos 7 comentários

Você quer dizer "Cenário: aqui está o nome" - deseja recuperá-lo quando? você pode anexar um ouvinte personalizado e, durante o evento BeforeScenario, obter a carga útil do cenário e chamar getName ()

Como você faz isso? Porque ambos retornam 'indefinidos'.

this.registerHandler('BeforeScenario', function (event, callback) {
  console.log(event.getPayloadItem());
  callback();
});
this.registerHandler('BeforeStep', function (event, callback) {
  console.log(event.getPayloadItem());
  callback();
});

Oi Stewart,

Tente novamente com este código:

// This code is generated from coffeescript so it appears a bit more verbose than needed
this.registerHandler('BeforeScenario', function (event, callback) {
    var scenario = event.getPayloadItem('scenario');
  console.info("\n[" + (scenario.getName()) + "](" + (scenario.getUri()) + ":" + (scenario.getLine()) + ")");
  callback();
});

this.registerHandler('BeforeStep', function (event, callback) {
  var step = event.getPayloadItem('step');
  console.info("\n[" + (step.getName()) + "](" + (step.getUri()) + ":" + (step.getLine()) + ")");
  callback();
});

O truque é fornecer um argumento para getPayloadItem() .

E para responder à sua pergunta, você deve ser capaz de armazenar as propriedades do cenário atual em execução em um objeto fora do manipulador BeforeScenario e, em seguida, usá-lo dentro do manipulador BeforeStep.
Espero que isso lhe indique a solução certa.

Este é um rastreador de problemas. Em vez disso, poste perguntas de suporte para o grupo cukes google.

Qual é a melhor e mais recente maneira de fazer isso agora? Obtendo nomes de etapas e tal?

Ressalto

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