Jenkins xUnit 测试结果报告

12

我有一个Jenkins任务,需要将一些测试报告(XML)复制到本地,并通过xUnit将它们转换为JUnit报告。

问题在于没有失败或跳过的测试,但我总是收到以下消息:

    [xUnit] [INFO] - Check 'Failed Tests' threshold.
    [xUnit] [INFO] - Check 'Skipped Tests' threshold.
    [xUnit] [INFO] - Setting the build status to FAILURE
    [xUnit] [INFO] - Stopping recording.
    Finished: FAILURE

这是什么原因引起的?


有测试结果吗?xUnit发布者可以配置为在没有结果的情况下失败。这是您构建中唯一的xUnit输出吗?构建配置是什么?您使用的xUnit插件版本是多少? - Dave Bacher
@Dave Bacher 这是奇怪的部分。我确实有测试结果,而且它是相当大的文件集。在我获得这些 XML 报告之后,我尝试使用 xUnit 来发布它们。那个 Jenkins 作业以前是正常工作的,但最近开始失败了。我不知道发生了什么。 - Jay Cui
3
我曾经遇到相同的问题。我通过一个Bash脚本触发了单元测试的运行(以及创建XML结果文件),但该脚本返回了1,这导致构建失败。[xUnit] [INFO] - 将构建状态设置为FAILURE 这一行是具有误导性的,因为它并没有将构建设置为失败,而是我的脚本返回代码已经造成了构建失败。我认为这只是简单地反映了当前构建的状态。 - Troyseph
对我来说没什么区别,你的输出之前还有3行。它们是[xUnit] [INFO] - 开始记录。 [xUnit] [INFO] - 处理 JUnit [xUnit] [INFO] - [JUnit] - 找到1个测试报告文件,模式为“nosetests.xml”,相对于“/home/jenkins/workspace/mts-pipeline-quality”,测试框架为“JUnit”。 - Henry
1个回答

0
在我的上一个项目中,我管理了3个开发团队,使用4个解决方案,这些解决方案共同构成了一个集成平台,全部运行在一个Jenkins Master上。
我有2个DOS批处理文件,它们保存在每个解决方案根目录下的JenkinsScripts/子目录中。其中一个名为CodeCoverage.bat(确保OpenCover和ReportGenerator监视单元测试),然后调用RunUnitTests.bat传递参数。
在RunUnitTests.bat中,关键行具有许多参数解析为:
packages\xunit.runner.console.2.1.0\tools\xunit.console.exe <MyUnitTestProject.dll> -nologo -noshadow -nunit TestReports\TestResults.xml

因此,我将XUnit结果XML转换为NUnit结果XML,并使用NUnit插件发布结果。
自从我采用了这种方法后,将XUnit和NUnit 3 XML映射到Jenkins友好的JUnit选项(在我的要求下)已经得到了改进。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接