Ich habe eine Anwendung mit .NET Core 1.0.1 - VS 2015 Tooling Preview 2 (mit Visual Studio Update 3) erstellt. Ich habe auch ein Testprojekt dafür mit MS-Tests, die ich nach dieser Anleitung erstellt habe: https://docs.microsoft.com/en-us/dotnet/articles/core/testing/unit-testing-with-dotnet-test.Kann keine automatisierten Tests für ASP.NET Core-Anwendung auf gehosteten Build-Agent in VSTS
Die Lösung besteht aus zwei Projekten, einer ist der ASP.NET WebApi Controller und der andere ist das zugehörige Testprojekt.
Mein Ziel ist es, automatische Erstellung, Test und Bereitstellung für Azure in Visual Studio Team Services einzurichten (war Visual Studio Online).
Ich habe den automatisierten Build nach dieser Anleitung eingerichtet: https://www.visualstudio.com/en-gb/docs/build/get-started/dot-net. Der Leitfaden bietet zwei Optionen, und ich habe beide versucht:
- ein Visual Studio Solution Schritt verwendet wird, die die Linie SLN
- oder Befehl baut die Schritte einzelner Projekte Kompilieren (
dotnet build
in jedem Projekt root ausgeführt wird).
Der Build-Lösung Schritt gelungen passieren, nachdem ich von 1.0.0-preview2-003131
zu 1.0.0-preview2-003121
meine global.json sdk Version geändert. Die Ausführung von Individual dotnet build
für jedes Projekt funktioniert jedoch auch mit 003131.
Zum Ausführen der Tests habe ich einen Befehlszeilenschritt, der dotnet test
aufruft. Dieser geht nicht, siehe unten die Fehlermeldung:
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.
So sieht aus wie ich nicht über die richtige Version von ASP.NET SDK auf dem gehosteten Agenten in VSTS haben. Allerdings habe ich ein paar Fragen:
- Warum ist der Build erfolgreich, aber die Tests laufen fehlschlägt? Sollte der Build zur Kompilierzeit wegen der fehlenden Framework-Version nicht fehlschlagen? Scheint so, als ob das Problem nur zur Laufzeit erkannt wird, wenn die Tests aufgerufen werden, aber warum?
- Warum passieren die einzelnen Projekt Builds bei Verwendung von 1.0.0-preview2-003131, aber die Lösung Build nicht?
- Anscheinend hat der gehostete Agent ".NET Core 1.0 mit Preview 2 Tooling", nach https://www.visualstudio.com/en-us/docs/build/admin/agents/hosted-pool#software. Ich bin froh, meinen Code herunter zu setzen, um ihn zu verwenden, aber wo finde ich ihn? Alle Download-Quellen, die ich gefunden habe (offizielle http://dot.net Seite, MSDN Links) sind für 1.0.1 und 1.0 Vorschau 2 ist nirgends zu finden.
Danke.
Ich habe unten die Dateien global.json und project.json aus den beiden Projekten eingefügt, falls sie helfen könnten.
global.json
{
"projects": [ "src", "test" ],
"sdk": {
"version": "1.0.0-preview2-003131"
}
}
project.json für das WebAPI Projekt
{
"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%" ]
}
}
Projekt.json aus dem Testprojekt
{
"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"
]
}
}
}