【问题标题】:how to use "Dotnet dotcover test --dcFilters" command to exclude certain namespaces from code coverage如何使用“Dotnet dotcover test --dcFilters”命令将某些命名空间排除在代码覆盖范围之外
【发布时间】:2021-05-28 03:56:55
【问题描述】:

我在我的 gitlab-ci.yml 中使用 dotnet dotcover test 命令来获取代码覆盖率。 我在我的单元测试解决方案中包含了 dotcover dotnetclitool 版本 2020.3.3,以便在管道测试阶段执行此命令。 但我无法从代码覆盖结果中成功排除某些类(在特定命名空间/文件夹下)。我的解决方案结构如下:

  1. 源文件夹
    • AClient.Repository.csproj
      • 扩展文件夹

        AClientExt.cs

      • 模型文件夹

        模型A.cs

        模型B.cs

      • 存储库文件夹

        RepoA.cs

        RepoB.cs

  2. 测试文件夹
    • AClient.Repository.UnitTests.csproj
      • 存储库测试

        RepoATests.cs

现在代码覆盖率包括解决方案,我想排除以下命名空间:

AClient.Repository.Extensions.*
AClient.Repository.Models.*
AClient.Repository.Tests.*

我正在运行此命令,但它无法正确排除过滤器,所以请有人帮我弄清楚 dcFilters 的正确用法:

【问题讨论】:

    标签: .net-core nunit dotcover


    【解决方案1】:

    我终于这样解决了:

    run-testCoverage:
      stage: dotnet-test
      image: mcr.microsoft.com/dotnet/core/sdk:3.1
      before_script:
        - cd tests/AClient.Repository.UnitTests
      script:
        - dotnet restore -v d
        - dotnet dotcover test --dcReportType=HTML --dcOutput=../../coverage/AppCoverageReport.html --dcFilters="+:AClient.Repository;-:type=AClient.Repository.Extensions.*;-:type=AClient.Repository.Models.*;-:type=AClient.Repository.UnitTests"
    

    这是帮助我的答案:https://stackoverflow.com/a/6208644/11731377

    【讨论】:

      猜你喜欢
      • 2019-09-24
      • 1970-01-01
      • 1970-01-01
      • 2013-01-05
      • 1970-01-01
      • 1970-01-01
      • 2017-12-29
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多