我有一个多模块maven项目。我的故事文件属于他们自己的模块,因为我们有从它们驱动的单独的gui和api测试,并且创建了一个包含这些的故事 - 故事文件名为*.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
?
答案 0 :(得分:0)
尝试使用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")