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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何从Jenkins的多个测试项目中获取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>

再次,抱歉这么快就再次发布,但似乎关于这些东西的文档非常稀少,或者我只是在搜索时很糟糕。提前致谢 :)

答案

好吧所以我想出来了,显然我之前没有足够的谷歌。 DotCover提供了在这里使用命令行的指南:https://www.jetbrains.com/help/dotcover/Running_Coverage_Analysis_from_the_Command_LIne.html

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

以上是关于如何从Jenkins的多个测试项目中获取dotCover覆盖率报告的主要内容,如果未能解决你的问题,请参考以下文章

如何通过maven测试Jenkins项目下的特定模块?

如何从 Gitlab webhook 事件负载中获取项目名称

如何在 jenkins 中部署,根据参数选择从特定的 git 分支获取源代码

如何使用 Jenkins 部署多个 SpringBoot 环境?

Jenkins 中如何一次构建多个项目

jenkins干嘛用的