java - 我如何从 JBehave 中的不同文件夹加载故事文件

标签 java selenium-webdriver bdd 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/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 文件分离到单独的文件夹中。

关于java - 我如何从 JBehave 中的不同文件夹加载故事文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18079313/

相关文章:

angularjs - Protractor 等待超时

java - 二叉搜索树差异键之和

java - Selenium webdriver 显式等待

ruby-on-rails - 如何在 Rails 3 项目的 Cucumber 中正确执行 Capybara @javascript 标签?

Python Selenium - 纯粹基于其基于主体元素偏移量的位置点击元素

java - 无法访问另一个包的类的静态变量

testing - 自动化测试 - 最佳实践 - 测试前获取测试数据

java - 将 room 中的行插入到主线程后如何获取插入的行 id

java - 在 Java 中集成 Python 脚本

java - 在 'paint' 方法中向 Choice 列表中添加一个选择就是在列表中添加多个相同的记录