2016-09-17 81 views
0

我有一個使用.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-0031311.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" 
          ] 
         } 
        } 
    } 
    
  • 回答

    0

    JSON看起來像我能回答我的問題,我已經取代:

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

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

    現在dotnet test步通過。

    由於我仍然不確定解決方案構建步驟與個人dotnet build命令實際發生的情況,我將打開此問題。

    相關問題