7
votes

I developed WebAPI project using .NET Core 3.1.0 and integration tests using XUnit.

I added the below task in Azure DevOps CI Pipeline (azure-pipelines.yaml) to run the integration tests project.

 - task: DotNetCoreCLI@2
   displayName: 'Run API integration tests - $(buildConfiguration)'
   inputs:
    command: 'test'
    arguments: '--configuration $(buildConfiguration)'
    publishTestResults: true
    projects: '**/IntegrationTests/IntegrationTests.csproj'

I got the below error during pipeline execution. How to resolve this error?

##[error]Error: The process '/usr/bin/dotnet' failed with exit code 1

##[warning].NET 5 has some compatibility issues with older Nuget versions(<=5.7), so if you are using an older Nuget version(and not dotnet cli) to restore, then the dotnet cli commands (e.g. dotnet build) which rely on such restored packages might fail. To mitigate such error, you can either: (1) - Use dotnet cli to restore, (2) - Use Nuget version 5.8 to restore, (3) - Use global.json using an older sdk version(<=3) to build

Info: Azure Pipelines hosted agents have been updated and now contain .Net 5.x SDK/Runtime along with the older .Net Core version which are currently lts. Unless you have locked down a SDK version for your project(s), 5.x SDK might be picked up which might have breaking behavior as compared to previous versions. You can learn more about the breaking changes here: https://docs.microsoft.com/en-us/dotnet/core/tools/ and https://docs.microsoft.com/en-us/dotnet/core/compatibility/ . To learn about more such changes and troubleshoot, refer here: https://docs.microsoft.com/en-us/azure/devops/pipelines/tasks/build/dotnet-core-cli?view=azure-devops#troubleshooting

##[error]Dotnet command failed with non-zero exit code on the following projects : /home/vsts/work/1/s/src/IntegrationTests/IntegrationTests.csproj

1
Not get your latest information, is Krzysztof Madej's workaround helpful for you? Or if you have any concern, feel free to share it here.Hugh Lin
Try to use the nuget version 5.8 to restore.Leo Liu-MSFT
Have the same issue. It is strange that the task completessuccesfully if it is not in a template, but fails when I move it to the template yml file. The answer from Krzysztof Madej did not help meDovlet Mamenov

1 Answers

0
votes

I've had exactly the same problem, with the difference that my solution consisted of .net5 apps as well as .netcore3.1 apps.

I was able to solve this problem by specifying the newer dotnet runtime in the azure pipeline:

- task: UseDotNet@2
  inputs:
    version: '5.0.x'
    packageType: runtime