Home:ALL Converter>How to run a Visual Studio 2017 dotnet test project on a release step in VSTS

How to run a Visual Studio 2017 dotnet test project on a release step in VSTS

Ask Time:2017-05-18T16:53:02         Author:Y8sy

Json Formatter

Does anyone know how to run a test project on a VSTS using dotnet test?

My situation is this. I have a simple MVC dotnet core web project, which builds and is hosted on an azure webapp. In the solution I have a xUnitTest project.

I can build both projects in the solution successfully, and publish the result from the build stage ready for the release stage in VSTS. I can do the Webapp fine, but want to run the tests after the webapp has been deployed which is where I have a problem.

The configuration of release in VSTS

Trying to run "dotnet test" through powershell fails saying it can't find project.json which a Visual Studio 2017 project doesn't have.

         Directory: D:\a\r1\a\Test QA-ASP.NET (PREVIEW)-CI\Extract\TrentsCoreTestProj
2017-05-18T08:39:05.5423817Z 
2017-05-18T08:39:05.5423817Z 
2017-05-18T08:39:05.5433824Z Mode                LastWriteTime         Length Name                                                                  
2017-05-18T08:39:05.5433824Z ----                -------------         ------ ----                                                                  
2017-05-18T08:39:05.5513817Z d-----        5/18/2017   6:48 AM                bin                                                                   
2017-05-18T08:39:05.5535129Z d-----        5/18/2017   6:50 AM                obj                                                                   
2017-05-18T08:39:05.5673839Z -a----        5/18/2017   6:48 AM           1179 DemoTests.cs                                                          
2017-05-18T08:39:05.5693821Z -a----        5/18/2017   6:48 AM            637 TrentsCoreTestProj.csproj                                             
2017-05-18T08:39:07.0767288Z 
2017-05-18T08:39:07.0767288Z Welcome to .NET Core!
2017-05-18T08:39:07.0767288Z ---------------------
2017-05-18T08:39:07.0767288Z Learn more about .NET Core @ https://aka.ms/dotnet-docs. Use dotnet --help to see available commands or go to https://aka.ms/dotnet-cli-docs.
2017-05-18T08:39:07.0767288Z Telemetry
2017-05-18T08:39:07.0767288Z --------------
2017-05-18T08:39:07.0767288Z The .NET Core tools collect usage data in order to improve your experience. The data is anonymous and does not include commandline arguments. The data is collected by Microsoft and shared with the community.
2017-05-18T08:39:07.0767288Z You can opt out of telemetry by setting a DOTNET_CLI_TELEMETRY_OPTOUT environment variable to 1 using your favorite shell.
2017-05-18T08:39:07.0767288Z You can read more about .NET Core tools telemetry @ https://aka.ms/dotnet-cli-telemetry.
2017-05-18T08:39:07.0767288Z Configuring...
2017-05-18T08:39:07.0767288Z -------------------
2017-05-18T08:39:07.0767288Z A command is running to initially populate your local package cache, to improve restore speed and enable offline access. This command will take up to a minute to complete and will only happen once.
2017-05-18T08:39:12.5336298Z Decompressing 0%Decompressing 1%Decompressing 2%Decompressing 3%Decompressing 4%Decompressing 
...
 97%Decompressing 98%Decompressing 99%Decompressing 100% 5339 ms
2017-05-18T08:39:33.4781464Z Expanding 0%Expanding 1%Expanding 2%Expanding 3%Expanding 4%Expanding 
...
 97%Expanding 98%Expanding 99%Expanding 100% 20646 ms
2017-05-18T08:39:59.8431503Z ##[error]dotnet-test Error: 0 : System.InvalidOperationException: D:\a\r1\a\Test QA-ASP.NET (PREVIEW)-CI\Extract\TrentsCoreTestProj\project.json does not exist.
   at Microsoft.DotNet.Tools.Test.TestCommand.GetProjectPath(String projectPath)
   at Microsoft.DotNet.Tools.Test.TestCommand.DoRun(String[] args)

2017-05-18T08:40:01.1967180Z ##[error]Process completed with exit code -1 and had 1 error(s) written to the error stream.
2017-05-18T08:40:01.1977186Z ##[section]Finishing: PowerShell Script

When I use the 'dotnet' release step, it tells me that the csproj is not there, which I can see from the powershell that it definately is.

2017-05-18T08:40:01.1997188Z ==============================================================================
2017-05-18T08:40:01.1997188Z Task         : .NET Core
2017-05-18T08:40:01.1997188Z Description  : Build, test and publish using dotnet core command-line.
2017-05-18T08:40:01.1997188Z Version      : 1.0.1
2017-05-18T08:40:01.1997188Z Author       : Microsoft Corporation
2017-05-18T08:40:01.1997188Z Help         : [More Information](https://go.microsoft.com/fwlink/?linkid=832194)
2017-05-18T08:40:01.1997188Z ==============================================================================
2017-05-18T08:40:01.6787208Z [command]"C:\Program Files\dotnet\dotnet.exe" test "D:\a\r1\a\Test QA-ASP.NET (PREVIEW)-CI\Extract\TrentsCoreTestProj\TrentsCoreTestProj.csproj"
2017-05-18T08:40:01.8877228Z dotnet-test Error: 0 : System.InvalidOperationException: D:\a\r1\a\Test QA-ASP.NET (PREVIEW)-CI\Extract\TrentsCoreTestProj\TrentsCoreTestProj.csproj\project.json does not exist.
2017-05-18T08:40:01.8887223Z    at Microsoft.DotNet.Tools.Test.TestCommand.GetProjectPath(String projectPath)
2017-05-18T08:40:01.8887223Z    at Microsoft.DotNet.Tools.Test.TestCommand.DoRun(String[] args)
2017-05-18T08:40:01.9397245Z ##[error]Error: C:\Program Files\dotnet\dotnet.exe failed with return code: 4294967295
2017-05-18T08:40:01.9397245Z ##[error]Dotnet command failed with non-zero exit code on the following projects : D:\a\r1\a\Test QA-ASP.NET (PREVIEW)-CI\Extract\TrentsCoreTestProj\TrentsCoreTestProj.csproj
2017-05-18T08:40:01.9397245Z ##[section]Finishing: dotnet test

I can run "dotnet test" successfully on my local command line, using the exact same commands, however I need this to be on VSTS so that I can make the testing part of our CI builds.

Author:Y8sy,eproduced under the CC 4.0 BY-SA copyright license with a link to the original source and this disclaimer.
Link to original article:https://stackoverflow.com/questions/44043021/how-to-run-a-visual-studio-2017-dotnet-test-project-on-a-release-step-in-vsts
yy