0

试图将Maven构建中的测试拆分为单元&集成测试。Maven - 添加集成测试

我正在使用故障安全插件来运行集成测试,并试图使用build-helper-maven-plugin从src/it/java目录添加集成测试。

我在尝试执行构建时收到错误消息,但看不到原因,从模块的根文件夹查看Integration Test源的路径是否正确。

[ERROR] Failed to execute goal org.codehaus.mojo:build-helper-maven-plugin:3.0.0:add-test-source (add-test-resource) on project XXXX: The parameters 'sources' for goal org.codehaus.mojo:build-helper-maven-plugin:3.0.0:add-test-source are missing or invalid -> [Help 1] 

任何想法都会受到欢迎。由于

<plugin> 
    <groupId>org.codehaus.mojo</groupId> 
     <artifactId>build-helper-maven-plugin</artifactId> 
     <version>3.0.0</version> 
     <executions> 
     <execution> 
      <id>add-test-source</id> 
      <phase>generate-test-sources</phase> 
      <goals> 
       <goal>add-test-source</goal> 
      </goals> 
      <configuration> 
       <sources> 
        <source>src/it/java</source> 
       </sources> 
      </configuration> 
     </execution> 
     <execution> 
      <id>add-test-resource</id> 
      <phase>generate-test-sources</phase> 
      <goals> 
       <goal>add-test-source</goal> 
      </goals> 
      <configuration> 
       <resources> 
       <resource> 
        <directory>src/it/resources</directory> 
       </resource> 
       </resources> 
      </configuration> 
     </execution> 
    </executions> 
</plugin> 

堆栈跟踪:

org.apache.maven.lifecycle.LifecycleExecutionException: Failed to execute goal org.codehaus.mojo:build-helper-maven-plugin:3.0.0:add-test-source (add-test-resource) on project XXXX: The parameters 'sources' for goal org.codehaus.mojo:build-helper-maven-plugin:3.0.0:add-test-source are missing or invalid 
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:213) 
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:154) 
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:146) 
    at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:117) 
    at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:81) 
    at org.apache.maven.lifecycle.internal.builder.singlethreaded.SingleThreadedBuilder.build(SingleThreadedBuilder.java:51) 
    at org.apache.maven.lifecycle.internal.LifecycleStarter.execute(LifecycleStarter.java:128) 
    at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:309) 
    at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:194) 
    at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:107) 
    at org.apache.maven.cli.MavenCli.execute(MavenCli.java:993) 
    at org.apache.maven.cli.MavenCli.doMain(MavenCli.java:345) 
    at org.apache.maven.cli.MavenCli.main(MavenCli.java:191) 
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) 
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 
    at java.lang.reflect.Method.invoke(Method.java:498) 
    at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced(Launcher.java:289) 
    at org.codehaus.plexus.classworlds.launcher.Launcher.launch(Launcher.java:229) 
    at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode(Launcher.java:415) 
    at org.codehaus.plexus.classworlds.launcher.Launcher.main(Launcher.java:356) 
Caused by: org.apache.maven.plugin.PluginParameterException: The parameters 'sources' for goal org.codehaus.mojo:build-helper-maven-plugin:3.0.0:add-test-source are missing or invalid 
    at org.apache.maven.plugin.internal.DefaultMavenPluginManager.populatePluginFields(DefaultMavenPluginManager.java:643) 
    at org.apache.maven.plugin.internal.DefaultMavenPluginManager.getConfiguredMojo(DefaultMavenPluginManager.java:596) 
    at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPluginManager.java:121) 
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:208) 
+1

集成测试坚持的src/test/java下...只是基于命名架构不添加一个单独的路径... * IT.java是一个集成测试,而Test.java是一个单元测试.... – khmarbaise

+0

我更愿意明确地分开单元测试和集成测试,因为它们也依赖于一组单独的测试资源文件。 – hexkid

+0

资源文件可以位于'src/test/resources'中?那么问题在哪里? – khmarbaise

回答

0

我不认为这是配置不同的路径正确的地方。但是如果你想坚持这个build-helper-maven-plugin,你应该运行mvn -X并发布堆栈跟踪。

但我想尝试直接在maven-failsafe-plugin中配置不同的文件夹。请参阅:

+0

堆栈跟踪没有太大的帮助。添加到原始问题。 – hexkid