Pergunta

Eu estou tentando criar e executar uma JUnitStory simples para executar um arquivo .story.

eu tenho este:

class Scenario1 extends JUnitStory {
    @Delegate MySteps steps = new MySteps()

    @Override
    public Configuration configuration() {
        return new MostUsefulConfiguration()
                .useStoryLoader(new LoadFromRelativeFile(new File('src/test/groovy').toURL()))
                .useStoryReporterBuilder(
                new StoryReporterBuilder()
                        .withDefaultFormats()
                        .withFormats(Format.HTML, Format.CONSOLE, Format.TXT)

        );
    }

    @Override
    public List candidateSteps() {
        final candidateSteps = new InstanceStepsFactory(configuration(), this).createCandidateSteps()
        return candidateSteps;
    }
}

Com ou sem o delegado (copiando e colando em todos os métodos anotados de MySteps), sempre que eu executar JBehave, eu recebo o seguinte resultado:

somePattern(){
  // PENDING
}

É como as histórias individuais não pegar os passos.

Quando eu criar um "Histórias" class e puxar todos os arquivos de história em com storyPaths, os passos individuais são definidos. Usando um depurador, vejo que candidateSteps está sendo atingido, mas não está puxando os dados de que necessita para.

O que poderia estar acontecendo aqui?

Foi útil?

Solução 4

JBehave é velha tecnologia, subdesenvolvida. Não usá-lo.

Outras dicas

Você não precisa delegar nos Passos. E também você não deve substituir candidateSteps, mas sim stepsFactory. Em versões posteriores do JBehave, candidateSteps é obsoleto, para que essa preferência para o método de fábrica mais proeminente ( http://jbehave.org/reference/stable/javadoc/core/org/jbehave/core/ConfigurableEmbedder.html#candidateSteps ())

Veja este blog, onde eu expliquei como as obras básicas de configuração JBehave com mais detalhes:

http://blog.codecentric.de/en/2012 / 06 / JBehave-configuration-tutorial /

Andreas

Aqui está a sua resposta amigo: O pacote de formato mudou.

Esta é a deprecated importação estática org.jbehave.core.reporters.StoryReporterBuilder.Format.HTML;

Este é o novo :) importação estática org.jbehave.core.reporters.Format.HTML;

Levou um tempo para encontrar a resposta, mas estava escondido na documentação JBehave

Espero que ajude! Felicidades!

Você não precisa usar o @Delegate - seu JUnitStory não é sua classe Passos. você pode tentar passando em etapas, onde você tem isso?

Quando você passar em uma classe que tem sido bytecode manipulado para classes Passos, JBehave não pode ver as anotações JBehave mais.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top