Pregunta

Estoy tratando de crear y ejecutar un JUnitStory simple de ejecutar un archivo .story.

tengo esto:

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 sin el delegado (copiar y pegar en todos los métodos anotados de MySteps), cada vez que corro JBehave, me sale el siguiente resultado:

somePattern(){
  // PENDING
}

Es como las historias individuales no recoger los pasos.

Cuando creo una clase de "Historias" y tire de todos los archivos de la historia en la storyPaths, se definen los pasos individuales. El uso de un depurador, veo que candidateSteps está siendo golpeado, pero no está tirando en los datos que necesita para.

¿Qué podría estar pasando aquí?

¿Fue útil?

Solución 4

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

Otros consejos

No es necesario delegar en los Pasos. Y también que no debe reemplazar candidateSteps, sino más bien stepsFactory. En versiones posteriores de JBehave, candidateSteps está en desuso, para hacer que la preferencia por el método de fábrica más prominente ( http://jbehave.org/reference/stable/javadoc/core/org/jbehave/core/ConfigurableEmbedder.html#candidateSteps ())

Ver este blog, donde expliqué cómo funciona la configuración JBehave básicos en más detalle:

http://blog.codecentric.de/en/2012 / 06 / jbehave-configuración-tutorial /

Andreas

Aquí está su compañero de respuesta: El paquete de formato ha cambiado.

Este es el desuso importación estática org.jbehave.core.reporters.StoryReporterBuilder.Format.HTML;

Este es el nuevo :) importación estática org.jbehave.core.reporters.Format.HTML;

tomó un tiempo para encontrar la respuesta, pero estaba oculto en la documentación jbehave

Hope que ayuda! Saludos!

No debería ser necesario utilizar el @Delegate - su JUnitStory no es la clase de pasos. Se puede tratar de pasar en los pasos donde se tiene esto?

Cuando se pasa en una clase que ha sido manipulada código de bytes para las clases de pasos, JBehave no puede ver las anotaciones jbehave más.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top