【问题标题】:How can I get code coverage from multiple projects如何从多个项目中获得代码覆盖率
【发布时间】:2019-07-16 16:31:12
【问题描述】:

我有一个包含 4 个项目(2 个常规项目和 2 个测试项目)的解决方案。我在 TFS 2018 中有一个构建管道,用于构建我的解决方案并检查代码覆盖率。我的问题是只报告了一个项目的代码覆盖率。缺少其他项目的代码覆盖率。不过,所有测试都已运行。

Visual Studio 测试步骤如下所示:

.runsettings 文件的相关部分如下所示:

<?xml version="1.0" encoding="utf-8"?>
<RunSettings>
  <DataCollectionRunSettings>
    <DataCollectors>
      <DataCollector friendlyName="Code Coverage" uri="datacollector://Microsoft/CodeCoverage/2.0" assemblyQualifiedName="Microsoft.VisualStudio.Coverage.DynamicCoverageDataCollector, Microsoft.VisualStudio.TraceCollector, Version=11.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
        <Configuration>
          <CodeCoverage>
            <ModulePaths>
              <Include>
                <ModulePath>.*\.dll$</ModulePath>
              </Include>
              <Exclude>
                <ModulePath>.*CPPUnitTestFramework.*</ModulePath>
                <ModulePath>.*moq.dll</ModulePath>
                <ModulePath>.*Tests.dll</ModulePath>
              </Exclude>
            </ModulePaths>

        <!-- We recommend you do not change the following values: -->
        <UseVerifiableInstrumentation>False</UseVerifiableInstrumentation>
        <AllowLowIntegrityProcesses>True</AllowLowIntegrityProcesses>
        <CollectFromChildProcesses>True</CollectFromChildProcesses>
        <CollectAspDotNet>False</CollectAspDotNet>

      </CodeCoverage>
    </Configuration>
  </DataCollector>
</DataCollectors>

这是测试步骤的日志输出:

2018-11-19T13:19:41.2308934Z ##[部分]开始:VsTest - 网络框架
2018-11-19T13:19:41.2412211Z ======================================= =======================================
2018-11-19T13:19:41.2412390Z 任务:Visual Studio 测试
2018-11-19T13:19:41.2412658Z 描述:使用 Visual Studio 测试运行器运行单元和功能测试(Selenium、Appium、编码的 UI 测试等)。也可以运行具有 Visual Studio 测试适配器的测试框架,例如 xUnit、NUnit、Chutzpah 等。可以使用此任务(版本 2)将测试分布在多个代理上。
2018-11-19T13:19:41.2412934Z 版本:2.3.28
2018-11-19T13:19:41.2413056Z 作者:微软公司
2018-11-19T13:19:41.2413412Z 帮助:More Information
2018-11-19T13:19:41.2413616Z ======================================== =======================================
2018-11-19T13:19:42.4501863Z 使用 vstest.console.exe 在本地运行测试
2018-11-19T13:19:42.4502051Z ======================================== ================
2018-11-19T13:19:42.4502460Z 测试选择器:测试组件
2018-11-19T13:19:42.4502750Z 测试程序集:* * \release\ * Tests.dll,! * * \obj\ * *
2018-11-19T13:19:42.4503062Z 测试过滤条件:null
2018-11-19T13:19:42.4503281Z 搜索文件夹:C:\agent_work\1\s
2018-11-19T13:19:42.4503610Z 运行设置文件:C:\agent_work\1\s\MyProject\CodeCoverage.runsettings
2018-11-19T13:19:42.4503933Z 并行运行:假
2018-11-19T13:19:42.4504212Z 隔离运行:false
2018-11-19T13:19:42.4505649Z 自定义适配器的路径:C:\agent_work\1\s\MyProject\Project2Tests\bin\release
2018-11-19T13:19:42.4505955Z 其他控制台选项:null
2018-11-19T13:19:42.4506168Z 代码覆盖启用:false
2018-11-19T13:19:42.4506699Z 重新运行失败的测试:false
2018-11-19T13:19:42.8500173Z 选择用于测试执行的 VisualStudio 版本:toolsInstaller
2018-11-19T13:19:43.0554534Z ======================================== ================
2018-11-19T13:19:43.1339450Z [命令]C:\agent_work_tool\VsTest\15.9.1-preview-20181023-04\x64\tools\net451\Common7\IDE\Extensions\TestPlatform\vstest.console.exe @ C:\WINDOWS\SERVIC~3\NETWOR~1\AppData\Local\Temp\c6857b51-ebfd-11e8-a1f3-554a7ebf3861.txt
2018-11-19T13:19:43.3385913Z Microsoft (R) Testausführungs-Befehlszeilentool 版本 15.9.1-preview-20181023-04
2018-11-19T13:19:43.3451743Z 版权所有 (c) Microsoft Corporation。 Alle Rechte vorbehalten。
2018-11-19T13:19:43.3452021Z
2018-11-19T13:19:43.3612218Z vstest.console.exe
2018-11-19T13:19:43.3612440Z "C:\agent_work\1\s\MyProject\Project1Tests\bin\Release\Project1Tests.dll"
2018-11-19T13:19:43.3612731Z "C:\agent_work\1\s\MyProject\Project2Tests\bin\Release\Project2Tests.dll"
2018-11-19T13:19:43.3612945Z /设置:"C:\agent_work\1\s\MyProject\CodeCoverage.runsettings"
2018-11-19T13:19:43.3613085Z /logger:"trx"
2018-11-19T13:19:43.3613289Z /TestAdapterPath:"C:\agent_work\1\s\MyProject\Project2Tests\bin\release"
2018-11-19T13:19:43.6746135Z Die Testausführung wird gestartet, bitte warten...
2018-11-19T13:19:44.9662159Z Microsoft (R) 覆盖率收集工具版本 15.0.30319.3000
2018-11-19T13:19:44.9663027Z
2018-11-19T13:19:44.9666782Z
2018-11-19T13:19:44.9674700Z 版权所有 (c) Microsoft Corporation。保留所有权利。
2018-11-19T13:19:44.9677551Z
2018-11-19T13:19:50.3174860Z Bestanden 测试1
...许多其他测试...
2018-11-19T13:19:53.3609732Z Microsoft (R) Coverage Collection Tool 版本 15.0.30319.3000
2018-11-19T13:19:53.3610319Z
2018-11-19T13:19:53.3610430Z
2018-11-19T13:19:53.3610840Z 版权所有 (c) Microsoft Corporation。保留所有权利。
2018-11-19T13:19:53.3611590Z
2018-11-19T13:19:53.8607813Z Bestanden 测试2
... 更多测试 ...
2018-11-19T13:19:53.9355517Z Ergebnisdatei: C:\agent_work\1\s\TestResults\TFS-BUILD09$_TFS-BUILD09_2018-11-19_14_19_50.trx
2018-11-19T13:19:53.9358179Z
2018-11-19T13:19:53.9451115Z Anlagen:
2018-11-19T13:19:53.9470455Z C:\agent_work\1\s\TestResults\332a54cb-163b-4b3b-9bd4-2f5a5be70f4e\TFS-BUILD09$_TFS-BUILD09 2018-11-19 14_19_44.coverage
2018-11-19T13:19:53.9591330Z
2018-11-19T13:19:53.9709295Z 测试 gesamt: 128. Bestanden: 128. Fehler: 0. Übersprungen: 0.
2018-11-19T13:19:53.9741454Z Der Testlauf 战争 erfolgreich。
2018-11-19T13:19:53.9781474Z Testausführungszeit: 8,6925 Sekunden
2018-11-19T13:19:54.2519255Z 发布测试结果以测试运行“178”
2018-11-19T13:19:54.2519974Z 剩余测试结果:128。测试运行 ID:178
2018-11-19T13:19:54.3272038Z ##[section]Async 命令开始:发布测试结果
2018-11-19T13:19:54.6094836Z 已发布测试运行:https://xxx/_TestManagement/Runs#runId=178&_a=runCharts
2018-11-19T13:19:54.6095328Z ##[section]Async 命令结束:发布测试结果
2018-11-19T13:19:54.6096656Z ##[section]整理:VsTest

【问题讨论】:

  • 查看测试步骤的输出。您期望运行的所有测试都在运行吗?使用日志更新您的问题。
  • @Daniel Mann:是的,所有测试都已运行。我检查了日志。我会更新我的问题。

标签: c# tfs


【解决方案1】:

我终于找到了答案。

在 .runsettings 文件的 Include 部分,我有这个:

<Include>
    <ModulePath>.*\.dll$</ModulePath>
</Include>

这意味着只评估 .dll 程序集。要同时包含 .exe 程序集,您必须编写以下内容:

<Include>
    <ModulePath>.*\.dll$</ModulePath>
    <ModulePath>.*\.exe$</ModulePath>
</Include>

【讨论】:

    猜你喜欢
    • 2021-11-17
    • 2011-09-16
    • 2022-08-16
    • 2021-01-24
    • 1970-01-01
    • 1970-01-01
    • 2019-01-29
    • 2014-06-22
    • 2017-03-06
    相关资源
    最近更新 更多