我一直在尝试使用JBehave运行并发的多线程故事。它们在使用嵌入器时正确运行,但在将它们作为可嵌入对象运行时,它们不会执行。当我更改源目录或作用域时,我得到一个nullpointerException,当我注释掉它们时,它成功构建,但找不到类“My-ProgramStories.java”。当我使用带有“mvn clean verify”的Maven执行它们时,这就是返回的内容(抱歉丑陋的格式):
[INFO]---jbeper-maven-plugin:3.7.5:run-stories s-as-嵌入的(嵌入的故事)@程序测试
这就是我在POM中配置JBehave Maven插件的方式:
<properties>
<embeddables>**/My-ProgramStories.java</embeddables>
<ignore.failre.in.stories>true</ignore.failre.in.stories>
<meta.filter>groovy: story_path ==~ /.*.story/</meta.filter>
<threads>4</threads>
<story.timeout.in.secs>400</story.timeout.in.secs>
</properties>
...
<plugin>
<groupId>org.jbehave</groupId>
<artifactId>jbehave-maven-plugin</artifactId>
<executions>
<execution>
<id>embeddable-stories</id>
<phase>integration-test</phase>
<configuration>
<includes>
<include>${embeddables}</include>
</includes>
<excludes>
<exclude>${exclude}</exclude>
</excludes>
<scope>test</scope>
<sourceDirectory>src/test/java</sourceDirectory>
<testSourceDirectory>src/test/resources</testSourceDirectory>
<skip>${skip}</skip>
<batch>false</batch>
<threads>${threads}</threads>
<storyTimeoutInSecs>${story.timeout.in.secs}</storyTimeoutInSecs>
<generateViewAfterStories>true</generateViewAfterStories>
<ignoreFailureInStories>
${ignore.failre.in.stories}
</ignoreFailureInStories>
<ignoreFailureInView>true</ignoreFailureInView>
<metaFilters>
<metaFilter>${meta.filter}</metaFilter>
</metaFilters>
</configuration>
<goals>
<goal>run-stories-as-embeddables</goal>
</goals>
</execution>
</executions>
<dependencies>
<dependency>
<groupId>org.codehaus.groovy</groupId>
<artifactId>groovy-all</artifactId>
<version>1.8.4</version>
</dependency>
</dependencies>
</plugin>
通过 Eclipse 查看,我的故事和测试类以及我的故事文件的结构如下:
我的程序测试
--
这是错误的堆栈跟踪:
[错误]无法对项目my-program执行目标org . jbehave:jbehave-maven-plugin:3 . 7 . 5:run-stories-as-embedded ables(embedded-stories):无法将故事作为可嵌入内容运行:NullPointerException -
基于此
Caused by: java.lang.NullPointerException at
org.codehaus.plexus.util.AbstractScanner.normalizePattern(AbstractScanner.java:327) at
org.codehaus.plexus.util.AbstractScanner.setExcludes(AbstractScanner.java:314) at
看起来您的排除模式配置已损坏。它看起来像这样:
<exclude>${exclude}</exclude>
未在属性中定义。您可以使用 effective-pom 来确认是否正确扩展了所有属性。
我不知道为什么,但JBehave没有考虑给定故事中的失败。如果givenstory出现故障,它将不执行该故事的其余步骤,但将执行给定故事的其余部分。下面是一个例子: 例如,如果Story2.story失败,我预计给定故事的其余部分和最后2个步骤都没有执行。但事实的确如此。 有人知道为什么吗?如果一个步骤或故事失败,我怎么能让所有故事都失败? 我还注意到,报告的统计数据只反映了最后一个给定的故事和后
我试图实现一个简单的程序来学习如何使用JBehave!!。该程序将两个数字相加。我从http://jBehave.org/eclipse-integration.html安装了eclipse插件,然后从http://jBehave.org/download.html下载了jBehave文件,并将。zip文件添加到构建路径中。但是我不能导入有什么建议吗?
当我尝试向UIViewController添加UIBarButtonItem时,在运行时没有显示任何内容。 我所做的: 我从一个全新的单视图项目开始。 我将一个UIBarButtonItem拖入视图控制器。 我现在可以在故事板中查看和自定义项目,但是当我运行它时,没有工具栏。 注意:栏按钮项显示为视图控制器的直接子项。 如何让UIToolbar出现?
我在Maven构建中使用JBehave,我也在Eclipse中开发它,有时在Eclipse中使用JUnit runner运行我的单元测试。我发现jbehave junit runner可以很好地美化jbehave中的故事。然而,添加jbehave junit runner似乎破坏了我的Maven构建。 安装后mvn清洁安装的结果https://github.com/codecentric/jbeh
在Serenity BDD中,有没有一种方法可以从依赖项中导入步骤用于本地故事?我正在从其他团队引入其他库(也使用Serenity ),希望能够在我自己的故事中使用他们的一个步骤。我可以找到一种方法来导入和运行他们的故事,但不仅仅是为了我自己的使用而引入他们的步骤。 我使用Java作为基础语言。
奇怪的是,即使是这种变体 我还是得到同样的错误。