Java JBehave故事将不会作为可嵌入程序运行

Java JBehave故事将不会作为可嵌入程序运行,java,testing,integration-testing,jbehave,Java,Testing,Integration Testing,Jbehave,我一直在尝试使用JBehave运行并发的多线程故事。当使用嵌入程序时,它们可以正确运行,但当作为可嵌入对象运行时,它们不会执行。当我更改源目录或作用域时,我会得到一个nullpointerException,当我注释掉它们时,它会成功构建,但找不到类“My ProgramStories.java”。当我使用带有“mvn clean verify”的Maven执行它们时,这就是返回的结果(对于难看的格式表示抱歉): [信息]---jbehave maven插件:3.7.5:以可嵌入的方式运行故事(

我一直在尝试使用JBehave运行并发的多线程故事。当使用嵌入程序时,它们可以正确运行,但当作为可嵌入对象运行时,它们不会执行。当我更改源目录或作用域时,我会得到一个nullpointerException,当我注释掉它们时,它会成功构建,但找不到类“My ProgramStories.java”。当我使用带有“mvn clean verify”的Maven执行它们时,这就是返回的结果(对于难看的格式表示抱歉):

[信息]---jbehave maven插件:3.7.5:以可嵌入的方式运行故事(可嵌入的故事)@program test>--
[信息]使用embedder以嵌入方式运行故事 嵌入器[storyMapper=storyMapper,storyRunner=storyRunner, embedderMonitor=MavenEmbedderMonitor,classLoader=EmbedderClassLoader[URL=[/Users//Documents/Repositories///target/test classes/,, /用户//文档/存储库///目标/类, groovy-all-1.8.4.jar],parent=ClassRealm[plugin>org.jbehave:jbehavemaven plugin:3.7.5, 父项:sun.misc.Launcher$AppClassLoader@1729854]],EmbedderControl= 不可修改的EmbedderControls[EmbedderControls[batch=false,skip=false,generateViewAfterStories true,ignoreFailureInStories=true,ignoreFailureInView=true,verboseFailures=false, verboseFiltering=false,StoryTimeoutineSecs=400,threads=4]], embedderFailureStrategy=org.jbehave.core.embedder.embedder$ThrowingRunningStoriesFailed@127c1 ee,configuration=org.jbehave.core.configuration。MostUsefulConfiguration@10c56cbd,假丝酵母 s=[],stepsFactory=,元过滤器=[groovy:story\u path==~/.*.story/],systemProperties {},executorService=,executorServiceCreated=false,storyManager=]
[信息]----------------------------------------------------------------
[信息]生成失败
[信息]----------------------------------------------------------------
[信息]总时间:1:04.710s
[信息]完成时间:2013年7月29日星期一09:55:43 [信息]最终内存:60M/123M
[信息]----------------------------------------------------------------
[错误]无法执行目标org.jbehave:jbehave maven插件:3.7.5:以其他方式运行故事 项目上的可嵌入故事(可嵌入故事):无法将故事作为 Embeddebles:NullPointerException->[帮助1]

这就是我在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>

**/My-ProgramStories.java
真的
groovy:story\u path==~/.*.story/
4.
400


org.jbehave
JBehaveMaven插件
可嵌入的故事
集成测试
${embeddedables}
${exclude}
测试
src/test/java
src/测试/资源
${skip}
假的
${threads}
${story.timeout.in.secs}
真的
${ignore.failre.in.stories}
真的
${meta.filter}
把故事当作儿戏讲
org.codehaus.groovy
groovy all
1.8.4
通过Eclipse查看的我的故事和测试类以及我的故事文件的结构如下所示:

我的程序测试
-->src/test/java
---->包装1
------>我的程序步骤。java
------>我的程序故事。java
-->src/测试/资源
---->包装1
------>故事档案

以下是错误的堆栈跟踪:

[错误]无法执行目标org.jbehave:jbehave maven插件:3.7.5:在项目上以可嵌入的方式运行故事我的程序:无法以可嵌入的方式运行故事:NullPointerException->[帮助1] org.apache.maven.lifecycle.LifecycleExecutionException:未能执行目标org.jbehave:jbehave maven插件:3.7.5:在项目上以嵌入方式运行故事(可嵌入故事)我的程序测试:以嵌入方式运行故事失败 位于org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:213) 位于org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:153) 位于org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:145) 位于org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:84) 位于org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:59) 位于org.apache.maven.lifecycle.internal.LifecycleStarter.singleThreadedBuild(LifecycleStarter.java:183) 位于org.apache.maven.lifecycle.internal.LifecycleStarter.execute(LifecycleStarter.java:161) 在org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:320) 在org.apache.maven.DefaultMaven.execute(DefaultMaven.java:156)上 位于org.apache.maven.cli.MavenCli.execute(MavenCli.java:537) 位于org.apache.maven.cli.MavenCli.doMain(MavenCli.java:196) 位于org.apache.maven.cli.MavenCli.main(MavenCli.java:141) 在sun.reflect.NativeMethodAccessorImpl.invoke0(本机方法)处 位于sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) 在sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)中 位于java.lang.reflect.Method.invoke(Method.java:597) 位于org.codehaus.plexus.classworlds.launcher.launcher.launchEnhanced(launcher.java:290) 位于org.codehaus.plexus.classworlds.launcher.launcher.launch(launcher.java:230) 在org.codehaus.plexus.classworlds.launc
<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>
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>