JBehave - все шаги отмечены как ожидающие? - PullRequest
7 голосов
/ 12 января 2012

Я пытаюсь создать и запустить простой JUnitStory для запуска файла .story.

У меня есть это:

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

С делегатом или без него (копирование и вставка всех аннотированных методов MySteps), всякий раз, когда я запускаю JBehave, я получаю следующий вывод:

somePattern(){
  // PENDING
}

Это похоже на то, что отдельные истории не поднимают ступеньки.

Когда я создаю класс «Истории» и извлекаю все файлы истории с помощью storyPaths, определяются отдельные шаги. Используя отладчик, я вижу, что выполняется кандидат в шаги, но он не извлекает нужные данные.

Что здесь может происходить?

Ответы [ 4 ]

2 голосов
/ 22 июня 2012

Вам не нужно делегировать по ступеням.И также вы не должны переопределять кандидатские шаги, а только шаги.В более поздних версиях JBehave, кандидат в кандидаты устарел, чтобы сделать это предпочтение для фабричного метода более заметным (http://jbehave.org/reference/stable/javadoc/core/org/jbehave/core/ConfigurableEmbedder.html#candidateSteps())

См. Этот блог, где я объяснил, как базовая конфигурация JBehave работает более подробно:

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

Андреас

1 голос
/ 07 августа 2014

Вот ваш ответ, приятель: Пакет формата изменился.

Это устарело импортировать статический org.jbehave.core.reporters.StoryReporterBuilder.Format.HTML;

Это новый :) импортировать статический org.jbehave.core.reporters.Format.HTML;

Потребовалось время, чтобы найти ответ, но он был скрыт в документации jbehave

Надеюсь, это поможет! Ура!

0 голосов
/ 18 июня 2012

JBehave - старая, недостаточно развитая технология.Не используйте его.

0 голосов
/ 24 февраля 2012

Вам не нужно использовать @Delegate - ваш JUnitStory не является вашим классом Steps. Можете ли вы попробовать пройти шаги, где у вас это?

Когда вы передаете класс, которым манипулировали байт-кодом для классов Steps, JBehave может больше не видеть аннотации jbehave.

...