如何将 JUnit 结果添加到 Tycho Built JAR
How to Add JUnit Results to Tycho Built JAR
我们使用 Maven,有时使用 Tycho,我想将 JUnit 测试的结果放入生成的 JAR 中。
使用 Maven,这很容易。我刚刚将以下内容添加到 pom.xml:
<resources>
<resource>
<directory>target/</directory>
<includes>
<include>surefire-reports/*.*</include>
</includes>
</resource>
</resources>
test
阶段在package
阶段之前,所以一切都很好。
然而,对于 Tycho,测试在 package
阶段之后执行(因为出于某种原因它们在 verify
阶段执行)。相位也不能改变(参见 bug 440094)。
所以唯一的选择是在 verify
阶段之后构建另一个 JAR:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<version>3.0.2</version>
<executions>
<execution>
<phase>post-integration-test</phase>
<goals>
<goal>jar</goal>
</goals>
<configuration>
<classifier>verification-doc</classifier>
<includes>
<include>**/surefire-reports/*.*</include>
</includes>
</configuration>
</execution>
</executions>
</plugin>
但是,它不起作用。既不添加文件夹也不添加文件。我的猜测是因为 include
标记指向源文件夹,所以我尝试了:
<include>${project.build.outputDirectory}/../surefire-reports/*.*</include>
<include>${project.build.directory}/surefire-reports/*.*</include>
哪个也不行?
那么如何将 JUnit 测试结果添加到 Tycho 构建的 JAR 中?
您可以像这样更改 maven-bundle-plugin
的目录:
<configuration>
<classesDirectory>${project.build.directory}</classesDirectory>
<includes>
<include>surefire-reports/*</include>
</includes>
</configuration>
我们使用 Maven,有时使用 Tycho,我想将 JUnit 测试的结果放入生成的 JAR 中。
使用 Maven,这很容易。我刚刚将以下内容添加到 pom.xml:
<resources>
<resource>
<directory>target/</directory>
<includes>
<include>surefire-reports/*.*</include>
</includes>
</resource>
</resources>
test
阶段在package
阶段之前,所以一切都很好。
然而,对于 Tycho,测试在 package
阶段之后执行(因为出于某种原因它们在 verify
阶段执行)。相位也不能改变(参见 bug 440094)。
所以唯一的选择是在 verify
阶段之后构建另一个 JAR:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<version>3.0.2</version>
<executions>
<execution>
<phase>post-integration-test</phase>
<goals>
<goal>jar</goal>
</goals>
<configuration>
<classifier>verification-doc</classifier>
<includes>
<include>**/surefire-reports/*.*</include>
</includes>
</configuration>
</execution>
</executions>
</plugin>
但是,它不起作用。既不添加文件夹也不添加文件。我的猜测是因为 include
标记指向源文件夹,所以我尝试了:
<include>${project.build.outputDirectory}/../surefire-reports/*.*</include>
<include>${project.build.directory}/surefire-reports/*.*</include>
哪个也不行?
那么如何将 JUnit 测试结果添加到 Tycho 构建的 JAR 中?
您可以像这样更改 maven-bundle-plugin
的目录:
<configuration>
<classesDirectory>${project.build.directory}</classesDirectory>
<includes>
<include>surefire-reports/*</include>
</includes>
</configuration>