如何整合dotcover和Jenkins

use*_*668 8 unit-testing code-coverage jenkins dotcover jenkins-plugins

如何整合dotcover和Jenkis.

任何PDF或指南?

我能够通过命令行运行点覆盖,并生成测试结果.但是,当我尝试通过Windows批处理命令在Jenkins中运行时,它会抛出一个错误

命令'cover'不支持2个未命名的参数键入'dotCover help'以供使用.

有什么遗失?

Sea*_*ean 8

我使用Jenkins的dotCover.我有多个需要测试的DLL,所以我的工作将为每个DLL执行dotcover,合并测试快照,并生成HTML报告.我的Jenkins设置包括"HTML Publisher插件"和"NUnit插件"

首先获取命令行工具并将其放在Jenkins服务器上: dotCoverCommandLineTools

在Windows批处理命令中运行命令行工具:

windows batch命令用来运行测试

我尝试将params传递到命令行时运气不佳,所以我使用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>
Run Code Online (Sandbox Code Playgroud)

Jenkins服务器上的路径是硬编码的,因为我很懒.我知道这应该是一个参数,但它现在正在工作.

接下来我合并所有快照: 合并

合并xml的内容:

<?xml version="1.0" encoding="utf-8"?>
<MergeParams>
  <Source>TRAUnitTests.dcvr</Source>
  <Source>TRAEngineTestSnapshot.dcvr</Source>          
  <Output>MergedSnapshots.dcvr</Output>
</MergeParams>
Run Code Online (Sandbox Code Playgroud)

然后运行报告: 报告

report.xml的内容:

<?xml version="1.0" encoding="utf-8"?>
<ReportParams>
  <Source>MergedSnapshots.dcvr</Source>
  <Output>CoverageReport.html</Output>
  <ReportType>HTML</ReportType>
</ReportParams>
Run Code Online (Sandbox Code Playgroud)

上面的所有.xml文件都位于一个名为"TestReports"的文件夹中,这就是我输出所有结果的地方.Jenkins将在那里发布HTML报告和nunit结果: 结果发布

如果一切正常,您应该在作业页面上获取dotCover报告和nunit结果.