2017-08-10 91 views
2

我使用SQL服務器,SSDT,GIT和VSTS,我很新也將可以實現一個數據庫的持續集成的過程,所以這裏有雲:SQL Server的單元測試自動化與VSTS - 團隊服務

我已經可以在本地機器上開發,使用「發佈」和「架構比較」功能同步Visual Studio數據庫項目和本地數據庫。

我也能夠在每個「推」操作來觸發VSTS生成定義,將建立,然後觸發釋放到QA環境。 現在我試圖將一些單元測試在構建後自動運行,但是當構建定義運行時,它無法在構建VM SQL Server實例中找到任何數據庫(每次運行構建定義時創建的虛擬機)...

,所以我需要我的數據庫架構以某種方式適用於它,所以它可以通過生成定義中的「Visual Studio的測試」任務運行自動化測試。 我想應該是像「發佈」功能,或者我應該嘗試使用PowerShell腳本部署.dacpac文件?

我試圖按照本教程:https://docs.microsoft.com/en-us/dynamics365/unified-operations/dev-itpro/perf-test/continuous-build-test-automation#test-integration-with-the-build

但我不能弄清楚如何在「與構建測試一體化」配置步驟4「使用‘數據庫同步’任務」部分的文章。

請問有沒有人做過這個?

回答

2

好的!所以,我可以讓它工作,因爲我期待...你只需要使用MSBUILD任務與參數發佈數據庫是這樣的:

/t:Build;發佈/p:SqlPublishProfilePath=your_publish_profile.xml

在你publish_profile文件,你必須指向內部VSTS VM中的SQL Server實例。所以我保留了一個版本爲Developers的發佈配置文件文件,指向我的VCS中的localhost,另一個分離的文件指向VSTS「(localdb)\ MSSQLLocalDB」。它與數據庫的名稱無關,因爲它會使用您配置的名稱創建一個新名稱。

然後你只需要添加「Visual Studio的測試」任務,瞧!

要注意的一件事測試:它會指向VSTS默認建築目錄,這是一個在變量$(Build.SourcesDirectory)

我看到使用內建的說法「有些人/ p:OutDir「來獲取.dacpac文件以便稍後使用」複製文件「任務進入工件文件夾。但如果你這樣做,你也必須更改「Visual Studio任務」目錄,所以我建議只需將「複製文件」任務源指向$(Build.SourcesDirectory)即可。然後讓「Visual Studio測試」任務以其默認運行良好。

1

您可以使用SQL Server單元測試(通過Visual Studio測試任務運行測試)來驗證數據庫,該數據庫可以測試之前進行部署。更多信息,你可以參考:Verifying Database Code by Using SQL Server Unit Tests

在另一方面,你可以通過使用Deploy SQL Dacpac Deployment group taskAzure SQL Database Deployment部署SQL Server數據庫。

+0

是的!如果我想在任何其他服務器上運行測試,那將是合適的.... 雖然我一直在研究一點點,但在發佈數據庫到VSTS中的構建虛擬機中的SQL服務器實例的方式中...我看到實例名稱是(localdb)\ MSSQLLocalDB。 所以我想通過MSBuild任務發佈它傳遞這些參數: /噸:建設;發佈/p:SqlPublishProfilePath=your_publish_profile.xml 然後指着Visual Studio的測試任務,以同一方面.. 雖然我仍然試圖做這件事。 我稍後會回來看新聞。 –

+0

@EduardoAlvesLisboa歡迎在此發佈結果或問題。 –