如何从JBehave中的另一个文件夹加载一个故事文件

我需要将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

我怎样才能实现它?

最佳答案 我假设你使用JUnitStory.

我认为你唯一要做的就是在类路径上放置两个目录:test / config和test / 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文件分隔到单独的文件夹中.

点赞