声纳云代码覆盖的Azure开发人员问题

时间:2019-06-29 01:16:19

标签: azure azure-devops

在azure devops构建管道中,我处于以下阶段。

  • 准备声纳云分析
  • dotnet恢复
  • dotnet构建
  • dotnet测试
  • dontnet发布
  • 复制测试文件..用于将(* .trx * .xml)复制到相应目录。
  • 运行代码分析
  • 发布质量门结果。

在这里,我的管道在测试中成功运行,但是没有覆盖代码。代码覆盖率显示为0.00%

*。trx文件正在所需的路径上复制,我也尝试过使用trx文件的默认路径,但是它在日志中显示以下消息。

错误消息

Post-processing started.
00:23:49.775  Property 'sonar.cs.vstest.reportsPaths' provided, skipping the search for TRX files in default folders.
00:23:49.995  Did not find any binary coverage files in the expected location.
00:23:49.995  Falling back on locating coverage files in the agent temp directory.
00:23:49.995  Searching for coverage files in D:\a\_temp
00:23:49.995  No coverage files found in the agent temp directory.
WARNING: The following projects do not have a valid ProjectGuid and were 
not built using a valid solution (.sln) thus will be skipped from 
analysis...
D:\a\1\s\Rost.API.Tests\Rost.API.Tests.csproj

我希望管道中的代码覆盖率,目前的代码覆盖率显示为0.00%。

1 个答案:

答案 0 :(得分:1)

我可以和你确认几个问题吗?

  1. 您是否在命令行参数中添加了--collect "Code coverage"选项? enter image description here
  

可以通过添加--collect“代码覆盖率”来收集代码覆盖率   命令行参数的选项。目前仅可用   在Windows平台上。

  1. 如果在本地运行test命令,代码覆盖率显示正确吗?

顺便说一句,SonarQube需要一个有效的Project GUID,但Core项目实际上并未使用它。建议在测试项目文件中添加ProjectGUID。

<Project Sdk="Microsoft.NET.Sdk">
  <PropertyGroup>
    <TargetFramework>netstandard2.0</TargetFramework>
    <!-- SonarQube requires a valid Project GUID but Core projects dont actually use this -->
    <ProjectGuid>{9C99E491-F56E-4515-9F0B-D72A5207DB13}</ProjectGuid>
  </PropertyGroup>
</Project>