如何从Jenkins的多个测试项目中获取dotCover覆盖率报告

时间:2018-02-24 22:36:06

标签: c# jenkins continuous-integration nunit dotcover

很抱歉再次在此类别中发布另一个问题,但我遇到了另一个问题。在这里的一些用户的帮助下,我想出了如何将多个测试项目结果生成到同一个结果文件中,但现在我需要做同样的事情,但是对于dotcover代码覆盖率报告。

到目前为止,我正在为每个测试项目运行批处理命令,所以它看起来像这样:

"C:\Program Files (x86)\Jetbrains\JetBrains.dotCover.CommandLineTools.2017.2.2\dotCover.exe" analyze dotCoverConfig1.xml

"C:\Program Files (x86)\Jetbrains\JetBrains.dotCover.CommandLineTools.2017.2.2\dotCover.exe" analyze dotCoverConfig2.xml

"C:\Program Files (x86)\Jetbrains\JetBrains.dotCover.CommandLineTools.2017.2.2\dotCover.exe" analyze dotCoverConfig3.xml

我觉得我非常接近,因为我从所有项目中获得了测试结果报告,但代码覆盖率报告仅涵盖了运行的最后一个批处理命令中引用的测试项目。

我在批处理命令中引用的配置文件除项目名称外都是相同的,如下所示:

<?xml version="1.0" encoding="utf-8"?>
<AnalyseParams>
  <TargetExecutable>C:\Program Files (x86)\NUnit.org\nunit-console\nunit3-console.exe</TargetExecutable>
  <TargetArguments>bin\Debug\Project1.Test.Unit.dll --result:TestResult.xml</TargetArguments>
  <TargetWorkingDir>Project1.Test.Unit</TargetWorkingDir>
  <TempDir><!-- Directory for the auxiliary files. Set to system temp by default. --></TempDir>
  <Output>coverage_report.html</Output>
  <ReportType>HTML<!-- [HTML|JSON|XML|NDependXML]. A type of the report. XML by default. --></ReportType>
  <InheritConsole><!-- [True|False] Lets the application being analysed to inherit dotCover console. True by default. --> </InheritConsole>

  <!-- Coverage filters. It's possible to use asterisks as wildcard symbols.
  <Filters>
    <IncludeFilters>
      <FilterEntry>
        <ModuleMask> Module mask. </ModuleMask>
        <ClassMask> Class mask. </ClassMask>
        <FunctionMask> Function mask. </FunctionMask>
      </FilterEntry>
    </IncludeFilters>
    <ExcludeFilters>
      <FilterEntry>...</FilterEntry>
      <FilterEntry>...</FilterEntry>
      <FilterEntry>...</FilterEntry>
    </ExcludeFilters>
  </Filters>
  -->
  <!-- Attribute filters. It's possible to use asterisks as wildcard symbols.
  <AttributeFilters>
    <AttributeFilterEntry>...</AttributeFilterEntry>
    <AttributeFilterEntry>...</AttributeFilterEntry>
  </AttributeFilters>
  -->
</AnalyseParams>

再次,抱歉这么快就再次发布,但似乎这些东西的文档相当稀疏,或者我只是在搜索时很糟糕。 在此先感谢:)

1 个答案:

答案 0 :(得分:2)

好吧所以我弄清楚了,显然我之前没有足够的谷歌。 DotCover提供了在此处使用其命令行的指南:https://www.jetbrains.com/help/dotcover/Running_Coverage_Analysis_from_the_Command_LIne.html

最终为我工作的是使用他们在“在不同步骤中为多个项目运行覆盖率”中描述的方法,运行批处理命令以获取每个测试项目的覆盖快照,每个项目都有自己的配置文件,然后合并这些快照,然后报告合并的结果。