Question

Je suis en train de créer et exécuter simple JUnitStory pour exécuter un fichier .story.

J'ai ceci:

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

Avec ou sans le délégué (copier-coller dans toutes les méthodes annotées de MySteps), chaque fois que je lance JBehave, je reçois la sortie suivante:

somePattern(){
  // PENDING
}

Il est comme les histoires individuelles ne ramassent pas les étapes.

Quand je crée une « histoires » classe et tirer tous les fichiers de l'histoire en avec storyPaths, les différentes étapes sont définies. L'utilisation d'un débogueur, je vois que candidateSteps est frappé, mais pas en tirant dans les données dont il a besoin pour.

Que pourrait-il se passer ici?

Était-ce utile?

La solution 4

JBehave est vieux, la technologie sous-développée. Ne l'utilisez pas.

Autres conseils

Vous n'avez pas besoin de déléguer aux étapes. Et vous ne devriez pas passer outre candidateSteps, mais plutôt stepsFactory. Dans les versions ultérieures de JBehave, candidateSteps est dépréciés, de faire cette préférence pour la méthode de fabrication plus important ( http://jbehave.org/reference/stable/javadoc/core/org/jbehave/core/ConfigurableEmbedder.html#candidateSteps ())

Voir ce blog, où je l'ai expliqué comment fonctionne la configuration de base JBehave plus en détail:

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

Andreas

Voici votre copain de réponse: Le paquet de format a changé.

Ceci est le Obsolète importation org.jbehave.core.reporters.StoryReporterBuilder.Format.HTML statique;

Ceci est le nouveau :) importation org.jbehave.core.reporters.Format.HTML statique;

A pris un certain temps pour trouver la réponse, mais il a été caché sur la documentation jbehave

Hope it helps! Vive!

Vous ne devriez pas besoin d'utiliser le @Delegate - votre JUnitStory n'est pas vos pas classe. Pouvez-vous essayer passer dans les étapes où vous avez cela?

Lorsque vous passez dans une classe qui a été manipulé bytecode pour les classes étapes, JBehave ne peut pas voir les annotations jbehave plus.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top