unit-testing - 如何整合dotcover和Jenkins

标签 unit-testing jenkins code-coverage jenkins-plugins dotcover

如何集成dotcover和Jenkis。

有PDF或指南吗?

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

命令'cover'不支持2个未命名的参数
键入“dotCover帮助”以供使用。

缺少什么吗?

最佳答案

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

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

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

windows batch command to run tests

我很想尝试将参数传递到命令行,所以运气不佳,所以我使用了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服务器上的路径是硬编码的,因为我很懒。我知道它应该是一个参数,但它现在可以正常工作。

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

合并xml的内容:
<?xml version="1.0" encoding="utf-8"?>
<MergeParams>
  <Source>TRAUnitTests.dcvr</Source>
  <Source>TRAEngineTestSnapshot.dcvr</Source>          
  <Output>MergedSnapshots.dcvr</Output>
</MergeParams>

然后运行报告:
report

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 (Jenkins)将会在那里发布HTML报告和nunit结果:
results publish

当一切正常时,您应该在作业页面上获得dotCover报告和nunit结果。

关于unit-testing - 如何整合dotcover和Jenkins,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24484657/

相关文章:

ios - 不显示时如何显示Xcode代码覆盖率?

c# - MS 测试代码覆盖率返回不正确的结果

unit-testing - 如何在多项目中使用 Spek 设置 Jacoco?

javascript - 如何在 Chrome、Microsoft Edge 或任何其他浏览器中自动化 UI 测试?

Jenkins - 主动选择 react 引用

java - 使用 Jenkins 内部版本号安装/部署 Maven

python - 以漂亮的表格形式显示 python unittest 结果

unit-testing - grails单元测试-java.lang.NullPointerException:无法在空对象上调用方法finish()

java - Sonarqube 更新后无法使用

c++ - Visual Studio 2010 native C++ 代码覆盖着色不起作用