如果您認爲您不應該將tSQLt框架或相關的單元測試部署到生產環境中,那麼您是正確的。
您正在尋找的解決方案是複合材料項目。您的解決方案大概已經擁有一個包含所有代碼的數據庫項目 - 例如稱爲MyDb。您需要將另一個數據庫項目添加到同一個解決方案中 - 您可以將其稱爲MyDb.tests(儘管名稱不重要)。第二個數據庫將包含tSQLt框架和所有測試。這是一個非常快人一步一步:
- 在沙箱稱爲MyDb.tests創建一個空數據庫,並添加 的tSQLt框架,這個數據庫
- 在Visual Studio中,導入從MyDb.tests的tSQLt對象到您的解決方案中的新的MyDb.tests數據庫項目中。或者,您可以創建tSQLt數據庫的dacpac並引用該數據庫。 個人而言,在導入時,我通常選擇按 架構對對象進行分組,因爲這樣可以很好地按照測試類對項目進行排序。
- 仍然在Visual Studio中,在MyDb.tests中,將數據庫引用添加到 「master」然後將另一個數據庫引用添加到您的解決方案中的MyDb數據庫 項目。確保你指定了相同的服務器,相同的數據庫 。開始向MyDb.tests添加測試,同時繼續到 在MyDb中編寫您的生產代碼。
- 當您將MyDb.Tests構建或發佈到您的沙盒時,生成的 數據庫將包含來自MyDb的tSQLt框架,您的測試和所有 對象和代碼。
- 在MyDb.tests中,您甚至可以添加一個後期部署腳本,其中 包含對
tSQLt.RunAll
的調用,以便您每次重新啓動MyDb.tests項目時都會運行 。
當您開始部署到測試,UAT或生產時,您只需從MyDb項目構建和發佈,並且不包含任何tSQLt框架或測試。
還有比這更給它一點 - 特別是如果你喜歡在SSMS來開發,然後導入您的對象回來到Visual Studio,但這裏有幾個鏈接,可以幫助:
https://kzhendev.wordpress.com/2014/01/08/setting-up-ssdt-database-projects-and-tsqlt/
https://www.red-gate.com/simple-talk/sql/sql-tools/sql-server-data-tools-ssdt-and-database-references/
你是在談論TFS SQL或SSDT項目(Visual Studio中的簡單數據庫項目)?我不確定TFS SQL是什麼意思...... –
這是SSDT項目(Visual Studio的數據庫項目) –
@datacentricity已經給出正確答案了 –