unit-testing - 在 azure devops yaml 管道上使用 dotnet 测试收集代码覆盖率

标签 unit-testing .net-core code-coverage azure-pipelines

我已经尝试了所有我能找到的方法来解决这个问题。

我有几个新的 .net core 3.1 或 .net standard 2 项目正在 Azure DevOps Services 上构建。我正在尝试为这些项目设置代码覆盖率,但一无所获。

在本地运行测试时,我成功并创建了代码覆盖率结果。

3/24/20 3:39 [jgust] [portChangesFromAggregateRepo ≡]
>: dotnet test .\Common.UnitTests\ --collect:"Code coverage"
Test run for C:\src\bio\lib\Common\src\Common.UnitTests\bin\Debug\netcoreapp2.2\Common.UnitTests.dll(.NETCoreApp,Version=v2.2)
Microsoft (R) Test Execution Command Line Tool Version 16.3.0
Copyright (c) Microsoft Corporation.  All rights reserved.

Starting test execution, please wait...

A total of 1 test files matched the specified pattern.

Attachments:
  C:\src\bio\lib\Common\src\Common.UnitTests\TestResults\74f826e4-4a46-46dd-9fe5-7fd17b8cee1c\2020-03-24.15_40_28.coverage
Test Run Successful.
Total tests: 794
     Passed: 794
 Total time: 19.3390 Seconds

但是,在 Azure DevOps 上运行此项目时,构建报告找不到收集器。

A total of 1 test files matched the specified pattern.
Data collection : Could not find data collector 'Code coverage'
Results File: d:\a\_temp\VssAdministrator_fv-az130_2020-03-24_20_53_07.trx

Test Run Successful.
Total tests: 794
     Passed: 794

为此的管道任务如下:

enter image description here

是的,我在这里使用 Windows 平台

enter image description here

关于为这些项目设置代码覆盖率收集,我缺少什么。

据我所知,我会全力以赴strait out of the book

此外,我正在使用所描述的包版本:

<PackageReference Include="Microsoft.NET.Test.Sdk" Version="15.9.0" />

最佳答案

您应该在Path to project(s)中指定测试项目的csproj文件的路径,并确保测试项目引用Microsoft.NET.Test.SDK版本15.8.0或更高版本

虽然指定 .dll 文件的路径将启用任务下的 dotnet test 命令来运行测试,但它不允许收集覆盖率数据。该操作需要 .csproj 文件的路径。

尝试使用 $(System.DefaultWorkingDirectory)\**\*${{parameters.slnName }}*[T|t]est*.csproj

注意:此规范应该使否定变得过时。

关于unit-testing - 在 azure devops yaml 管道上使用 dotnet 测试收集代码覆盖率,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60839895/

相关文章:

asp.net - 如何在.net core框架中使用TransactionScope?我找不到它

java - 适用于 Solaris 的任何 Java 代码覆盖工具

java - 如何使用 Mockito 在另一个 Mock 类中模拟 Spring 消息资源?

java - Maven 使用 AnnotationProcessor 构建,解析 src/main/java 中的文件并生成源代码到 generated-test-sources/test-annotations

使用内部对象进行 Java 单元测试

c# - 如何正确检查 ILogger.LogCritical 是否已使用 NSubstitute 调用?

c# - HttpClient - PostAsync 不返回

python-3.x - 多个 python 版本的 tox 覆盖范围

TDD和代码覆盖率

c# - 如何对邮件发送功能进行单元测试