执行发布代码覆盖率结果时出现 NullReferenceException - Azure devops

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

嗨,我是 azure devOps 和 Asp.net 的新手。我正在尝试将 Azure devOps 中的代码覆盖率实现到一个简单的控制台应用程序。当我尝试实现它时出现以下错误。 Error

**Starting: PublishCodeCoverageResults
==============================================================================
Task         : Publish code coverage results v2
Description  : Publish any of the code coverage results from a build
Version      : 2.218.0
Author       : Microsoft Corporation
Help         : https://docs.microsoft.com/azure/devops/pipelines/tasks/test/publish-code-coverage-results
==============================================================================
Found 1 result(s) matching pattern: **CalculatorApp.nUnit.Test/TestResults/Coverage/*coverage.cobertura.xml
D:\a\1\s\CalculatorApp.nUnit.Test\TestResults\Coverage\coverage.cobertura.xml
"C:\Program Files\dotnet\dotnet.exe" D:\a\_tasks\PublishCodeCoverageResults_2a7ebc54-c13e-490e-81a5-d7561ab7cd97\2.218.0\node_modules\coveragepublisher\CoveragePublisher\CoveragePublisher.Console.dll "D:\a\1\s\CalculatorApp.nUnit.Test\TestResults\Coverage\coverage.cobertura.xml" --reportDirectory D:\a\_temp\6c5c8a87-1929-4a83-a0c5-183961a9535a
System.NullReferenceException: Object reference not set to an instance of an object.
   at Microsoft.DotNet.Cli.Utils.EnvironmentProvider.get_ExecutableExtensions()
   at Microsoft.DotNet.Cli.Utils.EnvironmentProvider.GetCommandPathFromRootPath(String rootPath, String commandName, String[] extensions)
   at Microsoft.DotNet.CommandFactory.AbstractPathBasedCommandResolver.Resolve(CommandResolverArguments commandResolverArguments)
   at Microsoft.DotNet.CommandFactory.CompositeCommandResolver.Resolve(CommandResolverArguments commandResolverArguments)
   at Microsoft.DotNet.CommandFactory.CommandFactoryUsingResolver.Create(ICommandResolverPolicy commandResolverPolicy, String commandName, IEnumerable`1 args, NuGetFramework framework, String configuration, String outputPath, String applicationName)
   at Microsoft.DotNet.Cli.Program.ProcessArgs(String[] args, TimeSpan startupTime, ITelemetry telemetryClient)
   at Microsoft.DotNet.Cli.Program.Main(String[] args)**

这是我的yaml

# ASP.NET Core (.NET Framework)
# Build and test ASP.NET Core projects targeting the full .NET Framework.
# Add steps that publish symbols, save build artifacts, and more:
# https://docs.microsoft.com/azure/devops/pipelines/languages/dotnet-core

trigger:
- master

pool:
  vmImage: 'windows-latest'

variables:
  solution: '**/*.sln'
  buildPlatform: 'Any CPU'
  buildConfiguration: 'Release'

steps:
- task: DotNetCoreCLI@2
  inputs:
    command: 'test'
    projects: '**/CalculatorApp.nUnit.Test/*.csproj'
    publishTestResults: true
    arguments: '--configuration $(buildConfiguration) /p:CollectCoverage=true  /p:CoverletOutputFormat=cobertura /p:CoverletOutput=./TestResults/Coverage/ '


- task: PublishCodeCoverageResults@2
  inputs:    
    summaryFileLocation: '**CalculatorApp.nUnit.Test/TestResults/Coverage/*coverage.cobertura.xml'  

测试

我已经尝试了很多东西。我不明白为什么我会得到这个 NullRefereneException。

azure unit-testing azure-devops code-coverage
1个回答
0
投票

更改测试任务中的参数。

- task: DotNetCoreCLI@2
  inputs:
    command: 'test'
    projects: '**/CalculatorApp.nUnit.Test/*.csproj'
    publishTestResults: true
    arguments: '--configuration $(BuildConfiguration)   --collect "Code coverage" '

删除 PublishCodeCoverageResults@2

- task: PublishCodeCoverageResults@2
  inputs:    
    summaryFileLocation: '**CalculatorApp.nUnit.Test/TestResults/Coverage/*coverage.cobertura.xml'  
© www.soinside.com 2019 - 2024. All rights reserved.