4

mystory.story ファイルと MyStory.java を別のフォルダーに置く必要があります。以下は私の構成です、

@Override
    public Configuration configuration() {
        return new MostUsefulConfiguration()
        // where to find the stories
                .useStoryLoader(new LoadFromClasspath(this.getClass()))
                // CONSOLE and TXT reporting
                .useStoryReporterBuilder(
                        new StoryReporterBuilder().withDefaultFormats()
                                .withFormats(Format.CONSOLE, Format.HTML));
    }

    // Here we specify the steps classes
    @Override
    public List<CandidateSteps> candidateSteps() {
        // varargs, can have more that one steps classes
        return new InstanceStepsFactory(configuration(), new SurveySteps())
                .createCandidateSteps();
    } 

つまり、フォルダー構造を次のように使用する必要があります

 test
  |_config
        |_MyStory.java
  |_stories
        |_my_Story.story

それ以外の、

 test
  |_MyStory.java
  |_my_Story.story

どうすれば達成できますか?

4

2 に答える 2

1

を使用すると仮定しますJUnitStory。あなたがしなければならない唯一のことは、両方のディレクトリをクラスパスに置くことだと思います:test/configtest/stories. デフォルトのストーリー リゾルバーはorg.jbehave.core.io.UnderscoredCamelCaseResolver、 のようなストーリー パスを作成します。これは、デフォルトのリソース ローダーで"org.jbehave.core.ICanLogin.java" -> "org/jbehave/core/i_can_login.story"あるため、 を使用してロードされます。org.jbehave.core.io.LoadFromClasspathディレクトリはクラスパス上にあるためsrc/stories、リソース ローダーはそれを見つけます。これには、クラスとストーリーが同じ「パッケージ」に配置されている必要があることに注意してください。つまり、クラスがcom.foo.Bar(に配置されてsrc/configいる) の場合、対応するストーリーをcom/foo/Bar.story(にsrc/stories) に配置する必要があります。これは、リソース ファイルと Java ファイルを別々のフォルダーに分けることに似ています。

于 2013-08-07T19:37:55.503 に答える
1

デフォルトのストーリー パス リゾルバをオーバーライドできます。例:

@Override
public Configuration configuration() {
    return new MostUsefulConfiguration()
        .useStoryPathResolver(new StoryPathResolver() {
        @Override
        public String resolve(Class<? extends Embeddable> embeddableClass) {
            return "_stories/_my_Story.story";
        }
    })
}

(もちろん、匿名ではなく、クラス外のどこかに作成し、ここで使用する方が良いです)。ただし、その場合は、ストーリー ファイルの名前を明示的に指定するか、'MyClass' を 'my_class' に変換する jbehave 機能を再利用するか、独自の戦略を作成する必要があることに注意してください。

于 2014-11-21T11:30:06.990 に答える