我有一個使用.NET Core 1.0.1 - VS 2015 Tooling Preview 2(使用Visual Studio Update 3)構建的應用程序。我也有一個測試項目,使用MS測試,這是我根據本指南編寫的:https://docs.microsoft.com/en-us/dotnet/articles/core/testing/unit-testing-with-dotnet-test。無法在VSTS中託管構建代理上運行ASP.NET Core應用程序的自動化測試
該解決方案包含兩個項目,一個是ASP.NET WebApi控制器,另一個是關聯的測試項目。
我的目標是在Visual Studio Team Services(Visual Studio Online)中設置Azure的自動構建,測試和部署。
我已經按照本指南設置了自動化版本:https://www.visualstudio.com/en-gb/docs/build/get-started/dot-net。使用Visual Studio解決方案的步驟,其構建的.sln
dotnet build
)
- :本指南提供了兩種選擇,我曾經嘗試都。
構建解決方案的步驟後,管理我改變了我的global.json SDK版本從1.0.0-preview2-003131
到1.0.0-preview2-003121
順利過關。然而,對於每個項目運行個人dotnet build
也適用於003131。
對於運行測試,我有一個命令行步驟,調用dotnet test
。這一次沒有通過,請看到錯誤消息如下:
2016-09-16T18:46:40.2293724Z The specified framework 'Microsoft.NETCore.App', version '1.0.1' was not found.
2016-09-16T18:46:40.2293724Z - Check application dependencies and target a framework version installed at:
2016-09-16T18:46:40.2293724Z C:\Program Files\dotnet\shared\Microsoft.NETCore.App
2016-09-16T18:46:40.2293724Z - The following versions are installed:
2016-09-16T18:46:40.2293724Z 1.0.0
2016-09-16T18:46:40.2293724Z 1.0.0-rc2-3002702
2016-09-16T18:46:40.2293724Z - Alternatively, install the framework version '1.0.1'.
2016-09-16T18:46:40.2303741Z SUMMARY: Total: 1 targets, Passed: 0, Failed: 1.
2016-09-16T18:46:40.2593745Z ##[error]Process completed with exit code -2147450749.
所以看起來像我沒有ASP.NET SDK的正確版本在VSTS託管代理人。但是,我確實有幾個問題:
- 爲什麼構建成功但運行測試失敗?由於缺少框架版本,編譯時不應該編譯失敗?似乎只在運行時檢測到問題,而在調用測試時卻發現問題,但爲什麼?
- 爲什麼在使用1.0.0-preview2-003131時個別項目構建通過,但解決方案構建沒有?
- 顯然,根據https://www.visualstudio.com/en-us/docs/build/admin/agents/hosted-pool#software,託管代理具有「.NET Core 1.0 with Preview 2 Tooling」。我很樂意降級我的代碼來使用它,但我在哪裏可以找到它?我發現的所有下載源(官方http://dot.net頁面,MSDN鏈接)均適用於1.0.1和1.0預覽版2,無處可查。
謝謝。
我已經在兩個項目中包含了global.json和project.json文件,以防他們提供幫助。
global.json
{
"projects": [ "src", "test" ],
"sdk": {
"version": "1.0.0-preview2-003131"
}
}
project.json爲的WebAPI項目
{
"dependencies": {
"Microsoft.NETCore.App": {
"version": "1.0.1",
"type": "platform"
},
"Microsoft.AspNetCore.Mvc": "1.0.1",
"Microsoft.AspNetCore.Routing": "1.0.1",
"Microsoft.AspNetCore.Server.IISIntegration": "1.0.0",
"Microsoft.AspNetCore.Server.Kestrel": "1.0.1",
"Microsoft.Extensions.Configuration.EnvironmentVariables": "1.0.0",
"Microsoft.Extensions.Configuration.FileExtensions": "1.0.0",
"Microsoft.Extensions.Configuration.Json": "1.0.0",
"Microsoft.Extensions.Logging": "1.0.0",
"Microsoft.Extensions.Logging.Console": "1.0.0",
"Microsoft.Extensions.Logging.Debug": "1.0.0",
"Microsoft.Extensions.Options.ConfigurationExtensions": "1.0.0",
"Swashbuckle": "6.0.0-beta901",
"Swashbuckle.SwaggerGen": "6.0.0-beta901",
"Swashbuckle.SwaggerUi": "6.0.0-beta901"
},
"tools": {
"Microsoft.AspNetCore.Server.IISIntegration.Tools": "1.0.0-preview2-final"
},
"frameworks": {
"netcoreapp1.0": {
"imports": [
"dotnet5.6",
"portable-net45+win8"
]
}
},
"buildOptions": {
"emitEntryPoint": true,
"preserveCompilationContext": true,
"xmlDoc": true,
"nowarn": [ "1591" ]
},
"runtimeOptions": {
"configProperties": {
"System.GC.Server": true
}
},
"publishOptions": {
"include": [
"wwwroot",
"**/*.cshtml",
"appsettings.json",
"web.config"
]
},
"scripts": {
"postpublish": [ "dotnet publish-iis --publish-folder %publish:OutputPath% --framework %publish:FullTargetFramework%" ]
}
}
項目。從測試項目
{
"version": "1.0.0-*",
"testRunner": "mstest",
"dependencies": {
"Microsoft.NETCore.App": {
"type": "platform",
"version": "1.0.1"
},
"dotnet-test-mstest": "1.1.1-preview",
"MSTest.TestFramework": "1.0.3-preview",
"WebApiCoreMock": {
"target": "project"
}
},
"frameworks": {
"netcoreapp1.0": {
"imports": [
"dotnet5.6",
"portable-net45+win8"
]
}
}
}