使用 xUnit 和 SonarCloud 的 Azure DevOps 管道

问题描述 投票:0回答:1

有谁知道在收集测试覆盖率时,为 xUnit 运行并行程序集是否可以与 SonarCloud 一起使用?我们的单元测试运行时间很长,因此我们在 xUnit 文档中发现,您可以运行此命令以使程序集并行运行..."-- xunit.parallelizeAssembly=true"。但问题是,现在我们的测试覆盖率没有发布该 PR 中的正确测试覆盖率结果。

这就像收集 XPlat 代码覆盖率或 xunit 并行程序集的放置只会运行其中一个,以先到者为准。如果我在 XPlat 参数之前有并行汇编,那么我们的单元测试步骤的运行速度将是原来的两倍,但它不会收集代码覆盖率。如果首先收集代码覆盖率,那么单元测试步骤又会花费同样长的时间。

- task: DotNetCoreCLI@2
  displayName: dotnet test
  inputs:
    command: test
    arguments: '--no-build --configuration ${{ buildConfiguration }} --collect:"XPlat Code Coverage;Format=opencover" -- xunit.parallelizeAssembly=true'
azure-devops sonarqube xunit
1个回答
0
投票

如果并行组装位于 XPlat 参数之前,则该命令将忽略指定的

--collect
设置,但使用默认的 DataCollector 设置。

我的数据收集器设置:

coverage.cobertura.xml
是在Pipeline结果中创建的,不是
opencover
格式:

如果

parallel assembly
位于 XPlat 参数之后,则创建
opencover
结果:

此外,根据 dotnet test 文档,dotnet test 命令没有选项

xunit.parallelizeAssembly
,该选项存在于 xunit 配置文件中,请检查 answer 以供参考。

xunit.runner.json:

{
    "parallelizeAssembly": true
}
© www.soinside.com 2019 - 2024. All rights reserved.