Domanda

Sto cercando di creare ed eseguire un semplice JUnitStory per eseguire un file .story.

ho questo:

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;
    }
}

Con o senza il delegato (copiando e incollando in tutti i metodi annotati di MySteps), ogni volta che corro JBehave, ottengo il seguente output:

somePattern(){
  // PENDING
}

E 'come se le storie individuali non raccogliere i gradini.

Quando creo una classe "Storie" e tirare tutti i file con storia in storyPaths, vengono definiti i singoli passi. Utilizzando un debugger, vedo che candidateSteps è stato colpito, ma non è tirando nei dati è necessario.

Cosa potrebbe essere succedendo qui?

È stato utile?

Soluzione 4

JBehave is old, underdeveloped technology. Don't use it.

Altri suggerimenti

Non è necessario delegare a Piazza. E, inoltre, non si deve ignorare candidateSteps, ma piuttosto stepsFactory. Nelle versioni successive di JBehave, candidateSteps è deprecato, per fare che la preferenza per il metodo factory più prominente ( http://jbehave.org/reference/stable/javadoc/core/org/jbehave/core/ConfigurableEmbedder.html#candidateSteps ())

Vedere questo blog, in cui ho spiegato come le fondamentali opere di configurazione JBehave in modo più dettagliato:

http://blog.codecentric.de/en/2012 / 06 / jbehave configurazione dimostrativi /

Andreas

Questa è la risposta di amici: Il pacchetto di formato è cambiato.

Questo è il deprecato importazione statica org.jbehave.core.reporters.StoryReporterBuilder.Format.HTML;

Questo è il nuovo :) importazione statica org.jbehave.core.reporters.Format.HTML;

Ha preso un po 'per trovare la risposta, ma era nascosto sulla documentazione jbehave

Speranza che aiuta! Cheers!

You shouldn't need to use the @Delegate - your JUnitStory is not your Steps class. Can you try passing in steps where you have this?

When you pass in a class that has been bytecode manipulated for Steps classes, JBehave may not see the jbehave annotations anymore.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top