在Jenkins Maven作业中显示自定义测试结果
我刚刚在现有的Maven POM中添加了一些Python单元测试,但我似乎无法让Jenkins在运行构建时报告测试结果 在“测试”阶段,我正在使用从Maven运行的测试。测试从Jenkins作业成功运行,并生成与xUnit兼容的测试报告到target/surefire reports/test-nosetests.xml,但Jenkins没有获得结果 有趣的是,Maven还报告在执行测试套件之前没有运行任何测试:在Jenkins Maven作业中显示自定义测试结果,maven,jenkins,continuous-integration,Maven,Jenkins,Continuous Integration,我刚刚在现有的Maven POM中添加了一些Python单元测试,但我似乎无法让Jenkins在运行构建时报告测试结果 在“测试”阶段,我正在使用从Maven运行的测试。测试从Jenkins作业成功运行,并生成与xUnit兼容的测试报告到target/surefire reports/test-nosetests.xml,但Jenkins没有获得结果 有趣的是,Maven还报告在执行测试套件之前没有运行任何测试: -----------------------------------------
-------------------------------------------------------
T E S T S
-------------------------------------------------------
There are no tests to run.
Results :
Tests run: 0, Failures: 0, Errors: 0, Skipped: 0
[INFO]
[INFO] --- exec-maven-plugin:1.1.1:exec (nosetests) @ server ---
[INFO] ................
[INFO] ----------------------------------------------------------------------
[INFO] Ran 16 tests in 194.799s
[INFO]
[INFO] OK
[INFO] Registering compile source root /Volumes/Data/workspace/myProject/target
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
Jenkins没有看到结果,或者Maven没有将我的测试套件视为实际测试,这是一个问题吗?正如您在测试运行输出中看到的,Maven没有将测试识别为测试。此外,要查看Jenkins中的结果,您需要检查nope是否可以创建与junit兼容的输出结果文件(我假设),Jenkins可以读取并显示这些文件。我通过在Jenkins中使用“自由风格软件项目”而不是“maven2/3”项目解决了这个问题 在构建下,选择添加构建步骤,并将项目配置为调用顶级Maven目标。我正在使用测试目标 最后,在生成后操作下,选择发布JUnit测试结果报告的的添加生成后操作,并将其指向测试的xUnit输出。由于某些原因,此选项不适用于Maven 2/3作业
要根据答案构建,如果您在项目的多个子目录中有测试,您可以在“测试报告XMLs”字段中使用通配符,例如:
**/target/surefire reports/*.xml
如果您有一个更模块化的Jenkins设置,使用免费项目将无法正确构建子模块。如果生成报告执行id的maven插件是e2eTests
,那么将以下代码段添加到pom.xml中,jenkins maven插件将处理其余的部分
<properties>
<jenkins.e2eTests.reportsDirectory>target/protractor-reports</jenkins.e2eTests.reportsDirectory>
</properties>
目标/量角器报告
请参见添加maven编译器插件后重试
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.8.0</version>
<executions>
<execution>
<id>default-testCompile</id>
<phase>compile</phase>
<goals>
<goal>testCompile</goal>
</goals>
</execution>
</executions>
<configuration>
<encoding>ISO-8859-1</encoding>
<source>1.8</source>
<target>1.8</target>
<useIncrementalCompilation>false</useIncrementalCompilation>
<testSource>1.8</testSource>
<testTarget>1.8</testTarget>
</configuration>
</plugin>
org.apache.maven.plugins
maven编译器插件
3.8.0
默认测试编译
编译
测试编译
ISO-8859-1
1.8
1.8
假的
1.8
1.8
Nose可以生成兼容的输出,如我在问题中所述。问题是我无法让Maven看到输出并将其报告给Jenkins。我自己的回答说明了如何绕过Maven,让Jenkins直接看到报告。我认为这与Jenkins-9980 bug有关。