2017-01-05 36 views
0

我在我工作的公司中設置了構建服務器。 該構建服務器與Visual Studio Team Services交互工作。運行測試作爲Team Services構建過程的一部分時的問題

建築工程很好,所以發佈。我正在運行的問題是能夠以不同的用戶身份運行「dotnet測試」。

這是必需的,因爲當前代理運行的用戶是服務帳戶。它可以訪問IIS並且可以將文件移動到需要的位置。但它無法訪問數據庫。

由於我們使用了一些集成測試,因此在連接到數據庫時出錯,因爲它試圖以服務用戶身份進行連接。

到目前爲止,我還沒有找到一種方法來運行「dotnet測試」作爲不同的用戶,特別是有權訪問查詢數據庫的用戶。

我試過使用VSTS任務「在遠程機器上運行PowerShell」,因爲它允許我提供用戶名和密碼。但它似乎有試圖遠程連接到自己的問題(這可能是可以理解的)。

我不知所措。我不知道如何讓這個工作。除了讓服務用戶能夠在數據庫上運行這些查詢。

任何幫助,非常感謝!

回答

3

SQL身份驗證是更好的方法。因此請更改connectionstring以使用SQL身份驗證。

Server=myServerName\myInstanceName;Database=myDataBase;User Id=myUsername; 
Password=myPassword; 

驗證物品:Choose an Authentication Mode

+0

如果SQL驗證可能,這確實是最好的方法。 –

+0

看起來我可能需要在我的構建服務器上做用戶機密。 http://asp.net-hacker.rocks/2016/07/11/user-secrets-in-aspnetcore.html – kyurthich

1

您可以通過傳遞適當的憑證來啓動具有所需身份的進程。

param($user, $pwd) 
Start-Process $DOTNET_TEST_COMMAND -WorkingDirectory $DESIREDCURRENTWORKINGDIR -Credential (New-Object System.Management.Automation.PSCredential -ArgumentList @($user,(ConvertTo-SecureString -String $pwd -AsPlainText -Force))) 

我的看法是,在構建過程中唯一的單元測試應該被執行,因爲你可以有共同構建機器上的副作用,如果你執行更令人費解的測試,功能測試。 而是比運行構建機器上的功能測試,我建議VSTS的釋放過程中使用Run Functional Tests任務,因爲這將允許您:

  • 上機池分佈測試您安裝試劑通過Deploy Test Agent task);
  • 提供測試所運行身份的憑證,此功能在任務中即時顯示,即解決您的問題;
+0

的運行功能測試的想法真的是一個偉大的。我希望我可以將這兩個標記爲答案。他們對我的問題至關重要。 – kyurthich

相關問題