2016-09-17 1 views
0

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" 
      ] 
     } 
    } 
} 

Antwort

0

Sieht aus wie ich bin in der Lage meine eigene Frage zu beantworten, habe ich ersetzt:

"dependencies": { 
    "Microsoft.NETCore.App": { 
     "version": "1.0.1", 
     "type": "platform" 
    }, 

mit

"dependencies": { 
    "Microsoft.NETCore.App": { 
     "version": "1.0.0-rc2-3002702", 
     "type": "platform" 
    }, 

und jetzt der dotnet test Schritt geht.

Da ich immer noch nicht sicher bin, was tatsächlich mit dem Lösungsaufbau Schritt vs individuelle dotnet build Befehle passiert, lasse ich die Frage geöffnet.

Verwandte Themen