如何在maven组件中包含单元测试?

10 junit maven-2 assemblies include

原因:我们的项目使用Ant作为命令行界面.在使用maven的程序集插件进行新的程序集之后,我想进行初始测试以查看是否所有程序都已正确组装.因此,我需要在最终装配中包含单元测试.组装后,初始测试将被称为类似

> ant initTest
Run Code Online (Sandbox Code Playgroud)

build.xml文件:

<target="initTest">
  <junit>
   <test class="MyTest" />
  </junit>
</target>
Run Code Online (Sandbox Code Playgroud)

问题是:我想在src/test/java中保留我的单元测试,而不是将它们移动到src/main/java.有没有办法告诉程序集插件包含我的单元测试?汇编描述符中的简单包含不执行...

Dom*_*ell 10

有两个步骤:

  1. 将测试打包到jar和主代码中.
  2. 取决于进行组装的模块中的"-tests"jar.

要打包测试,您需要将jar:test-jar目标分开.例如

<build>
  <plugins>
    <plugin>
      <artifactId>maven-jar-plugin</artifactId>
      <executions>
        <execution>
          <id>test-jar</id>
          <phase>package</phase>
          <goals>
            <goal>test-jar</goal>
          </goals>
        </execution>
      </executions>
    </plugin>
  </plugins>
</build>
Run Code Online (Sandbox Code Playgroud)

然后在装配模块中,您可以依赖于生成的工件.

<dependencies>
  <dependency>
    <groupid>${project.groupId}</groupId>
    <artifactId>some-artifact</artifactId>
    <version>${project.version}</version>
    <classifier>tests</classifier>
  </dependency>
</dependencies>
Run Code Online (Sandbox Code Playgroud)

关键位是"分类器".

  • 依赖性应该也可能具有范围"测试" (2认同)