【问题标题】:Loading stories from classpath (and stories aren't called .story)从类路径加载故事(故事不称为 .story)
【发布时间】:2014-10-09 08:08:03
【问题描述】:

我有一个多模块 Maven 项目。我的故事文件位于它们自己的模块中,因为我们从它们驱动了单独的 gui 和 api 测试,并创建了一个包含这些的 jar - 故事文件命名为 *.feature

在另一个模块中,我创建了一个Story 类:

  public class NewAnnouncements extends JUnitStory {
    @Override
    public Configuration configuration() {
      return new MostUsefulConfiguration().useStoryLoader(new LoadFromClasspath());
    }

    @Override
    public InjectableStepsFactory stepsFactory() {
        return new InstanceStepsFactory(configuration(), new NewAnnouncements());
    }
  }

但是,可以预见的是,这并没有找到它的故事。怎么可能?这些故事不被称为 *.story 并且它们不在文件系统上(尽管它们在同一个类路径中)。我得到的错误是:

org.jbehave.core.io.StoryResourceNotFound: Story path 'org/.../announcement/new_announcements.story' not found by class loader sun.misc.Launcher$AppClassLoader@63e68a2b

如何让 jbehave 找到我的故事文件?我如何让它理解他们不被称为*.story

【问题讨论】:

  • 我已经阅读了 jbehave 文档,但这根本没有帮助,因为大多数示例似乎都是从文件系统加载的。我也用谷歌搜索了这个问题,这也没有帮助,主要是出于同样的原因。
  • @BackSlash - 感谢您的链接,但我不明白它与手头的问题有何关系。你能扩大一点吗?
  • 请阅读:第二个代码块(小代码块)之前的文本说:构建器为所有支持的格式提供默认值, 但是如果用户需要为给定格式创建报告者的定制实例,可以通过覆盖默认值轻松完成。例如。覆盖 TXT 格式的报告器以使用“.text”扩展名。之后有一个关于如何使用 .text 扩展的示例(您可以适应您的扩展)
  • 再次感谢,我已经阅读了它,但我不打算创建一个记者(还)——我正在尝试找到这些故事,以便完全运行我的测试。现在,我没有什么要报告的。我的问题在这一点上不清楚吗?我应该更新它吗?

标签: java jbehave


【解决方案1】:

尝试使用 JUnitStories 的 JBehave 文档中的示例:
http://jbehave.org/reference/stable/configuration.html

public class TraderStories extends JUnitStories {

public TraderStories() {
    // configure as TraderStory except for
    Configuration configuration = new MostUsefulConfiguration()
            .useStoryLoader(new LoadFromURL())
}

@Override
protected List<String> storyPaths() {
    String codeLocation = codeLocationFromClass(this.getClass()).getFile();
    return new StoryFinder().findPaths(codeLocation, asList("**/trader*.story"),
                asList(""), "file:"+codeLocation);
}

并在此示例中替换模式:asList("**/trader*.story")
使用模式:asList("**/*.feature")

【讨论】:

    猜你喜欢
    • 2019-08-28
    • 2022-12-17
    • 2015-10-19
    • 1970-01-01
    • 1970-01-01
    • 2019-10-31
    • 2020-07-15
    • 1970-01-01
    • 2015-09-20
    相关资源
    最近更新 更多