JBehave - tutti i passaggi contrassegnati in attesa?
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?
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.