我使用 Jenkins 的 dotCover。我有多个需要测试的 DLL,因此我的工作将为每个 DLL 执行 dotcover、合并测试快照并生成 HTML 报告。我的 Jenkins 设置包括“HTML Publisher 插件”和“NUnit 插件”
首先抓取命令行工具,放到Jenkins服务器上:
在 windows 批处理命令中运行命令行工具:
我在尝试将参数传递到命令行时运气不佳,因此我使用了来自 dotCover 的设置 xml(dotCoverTRAEngineTest.xml 的内容):
<?xml version="1.0" encoding="utf-8"?>
<CoverageParams>
<TargetExecutable>C:\NUnit-2.6.3\bin\nunit-console.exe</TargetExecutable>
<TargetArguments>C:\Jenkins\workspace\TRA.CodeCoverage\TRAEngine\TRAEngineTest\bin\x64\RduDev\TRAEngineTest.dll /xml:C:\Jenkins\workspace\TRA.CodeCoverage\TestReports\dotCoverTRAEngineTestRESULTS.xml</TargetArguments>
<TargetWorkingDir></TargetWorkingDir>
<Output>TRAEngineTestSnapshot.dcvr</Output>
</CoverageParams>
Jenkins 服务器上的路径是硬编码的,因为我很懒。我知道它应该是一个参数,但它现在可以工作了。
接下来我合并所有快照:
合并xml的内容:
<?xml version="1.0" encoding="utf-8"?>
<MergeParams>
<Source>TRAUnitTests.dcvr</Source>
<Source>TRAEngineTestSnapshot.dcvr</Source>
<Output>MergedSnapshots.dcvr</Output>
</MergeParams>
然后运行报告:
report.xml 的内容:
<?xml version="1.0" encoding="utf-8"?>
<ReportParams>
<Source>MergedSnapshots.dcvr</Source>
<Output>CoverageReport.html</Output>
<ReportType>HTML</ReportType>
</ReportParams>
上面的所有 .xml 文件都位于一个名为“TestReports”的文件夹中,这就是我将所有结果输出到的地方。 Jenkins 将在那里发布 HTML 报告和 nunit 结果:
如果一切正常,您应该会在工作页面上获得 dotCover 报告和 nunit 结果。