如何在VSTS

时间:2017-05-18 08:53:03

标签: .net-core azure-pipelines

有没有人知道如何使用dotnet测试在VSTS上运行测试项目?

我的情况是这样的。我有一个简单的MVC dotnet核心Web项目,它构建并托管在azure webapp上。在解决方案中,我有一个xUnitTest项目。

我可以成功地在解决方案中构建两个项目,并从构建阶段发布结果,为VSTS中的发布阶段做好准备。我可以很好地完成Webapp,但是在部署了webapp后我想运行测试,这是我遇到问题的地方。

The configuration of release in VSTS

尝试运行" dotnet test"通过powershell失败说它无法找到Visual Studio 2017项目没有的project.json。

         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

当我使用' dotnet'释放步骤,它告诉我csproj不在那里,我可以从powershell看到它肯定是。

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

我可以运行" dotnet test"在我的本地命令行上成功使用完全相同的命令,但是我需要将它放在VSTS上,以便我可以在CI构建中进行测试。

1 个答案:

答案 0 :(得分:1)

检查:

  1. 您使用托管的VS 2017队列而不是默认的托管队列或安装了1.0.0+ CLI的自定义计算机
  2. 确保您的项目(或global.json)中没有D:\文件将CLI用于1.0.0-preview2-*版本 - 这可能是您的原因看到project.json does not exist消息。