7

.storyファイルを実行するための単純なJUnitStoryを作成して実行しようとしています。

私はこれを持っています:

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、個々のステップが定義されます。デバッガーを使用すると、candidateStepsがヒットしていることがわかりますが、必要なデータを取得していません。

ここで何が起こっているのでしょうか?

4

4 に答える 4

2

ステップに委任する必要はありません。また、candidateStepsではなくstepsFactoryをオーバーライドする必要があります。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/

アンドレアス

于 2012-06-22T15:05:34.337 に答える
1

これがあなたの答えの相棒です:フォーマットのパッケージが変更されました。

これは非推奨のimportstaticorg.jbehave.core.reporters.StoryReporterBuilder.Format.HTMLです。

これは新しいものです:)importstatic org.jbehave.core.reporters.Format.HTML;

答えを見つけるのにしばらく時間がかかりましたが、jbehaveのドキュメントに隠されていました

それが役に立てば幸い!乾杯!

于 2014-08-07T14:41:05.607 に答える
0

@Delegateを使用する必要はありません。JUnitStoryはStepsクラスではありません。あなたはこれを持っているステップを通過してみることができますか?

Stepsクラス用にバイトコード操作されたクラスを渡すと、JBehaveはjbehaveアノテーションを認識しなくなる場合があります。

于 2012-02-24T00:25:18.037 に答える
-4

JBehaveは古く、開発が進んでいないテクノロジーです。使用しないでください。

于 2012-06-18T16:46:18.277 に答える