2017-02-08 82 views
2

我有一套在Visual Studio 2013中構建的SQL Server數據庫單元測試來測試存儲過程和函數。測試對我的本地數據庫運行良好,但我也希望它們作爲CI進程的一部分在DEV服務器的數據庫上運行。SQL Server數據庫單元測試和持續集成

爲了實現這一點,我構建了測試DLL並將DLL和配置文件複製到DEV服務器,然後運行命令行vstest.console.exe進行測試。這在我的本地機器上正常工作,但是當我嘗試在DEV上運行它時,我得到以下每個測試的例外:

從配置文件讀取SQL Server單元測試設置時發生錯誤。單擊測試項目,從SQL菜單打開SQL Server測試配置對話框,將設置添加到對話框,然後重新生成項目。

我一直在使用慢獵豹,以確保一個app.config變換應用解決方案建立之前,我可以看到,在配置文件中被應用的變換試過了,但是我的測試失敗。

有沒有人想出了一個辦法呢?似乎很奇怪的是,DLL必須被重建以在配置文件中使用連接字符串更改。

我也試過按照post的建議,但沒有成功。

回答

1

我終於得到了這個工作。看起來好像對用於SQL單元測試的配置文件的結構進行了更改。在我的配置中,我有一個名爲SqlUnitTesting的部分,其中包含ExecutionContext和PrivilegedContext的連接字符串。我注意到,當我創建一個新的單元測試項目時,部分名稱已更改爲SqlUnitTesting_VS2013。改變我現有的配置,解決了這個問題。我只能假設我在兩種環境中調用了vstest.console.exe的稍微不同的版本。

總結如何獲得SQL Server的單元測試的命令行vstest.console.exe應用在多種環境中工作,這些都是採取的步驟:

  1. 安裝慢獵豹擴展爲Visual Studio ,它根據所選的構建配置管理你的App.config文件的轉換。
  2. 確保您的App.config文件中有一個名爲SqlUnitTesting_VS2013的部分,其中包含您的ExecutionContext和PrivilegedContect連接字符串。
  3. 根據構建配置(調試,發佈等)爲您使用的每個環境設置緩慢的獵豹變換。您需要閱讀Slow Cheetah doco才能完成此操作,但基本上,您需要爲構建時轉換爲App.config的每個環境設置連接字符串。
  4. 使用您的目標環境配置構建解決方案。
  5. 將DLL和config從相關bin/buildConfiguration目錄複製到目標環境。
  6. 運行vstest.console.exe並觀察您的測試是否通過。

我希望這對某人有幫助。