1

我導入了我的SQL Server 2008數據庫腳本,並創建了一個新的VS 2010項目來爲數據庫創建單元測試。它具有內置的功能來檢查返回的行數和標量Visual Studio 2010單元測試數據庫

我需要知道的是,我怎麼能清除整個數據庫中運行的程序,因爲它會檢查新插入的行之前,但需要我告訴它行#檢查

這裏是一個單元測試調用存儲過程插入一個ADDRES代碼:

-- database unit test for dbo.spInsertAddress 
DECLARE @RC AS INT, @Street AS VARCHAR (60), @City AS VARCHAR (50), @State AS CHAR (20), @Zip AS VARCHAR (10), @Intersection1 AS VARCHAR (60), @Intersection2 AS VARCHAR (60), @AddressID AS INT; 

SELECT @RC = 0, 
     @Street = 'StreetName', 
     @City = NULL, 
     @State = NULL, 
     @Zip = NULL, 
     @Intersection1 = NULL, 
     @Intersection2 = NULL; 

EXECUTE @RC = [dbo].[spInsertAddress] @Street, @City, @State, @Zip, @Intersection1, @Intersection2, @AddressID OUTPUT; 

--SELECT @RC AS RC, 
--  @AddressID AS AddressID; 
SELECT * FROM Address; 

這裏是VS單元測試的圖像: Unit Test

重申怎麼辦的問題我清除數據庫或刪除過程運行後插入的任何內容?

也爲其他有興趣的單元測試通過VS這裏DB是一個鏈接:Create Database Unit Tests for Functions, Triggers, and Stored Procedures

+0

+1這個有趣的問題,我一直在尋找很多關於這樣做,直到我發現我自己的方法。 –

+0

@Leandro謝謝它需要一段時間才能找出解決方案和資源。我將添加一個鏈接到我的主帖。 – Kairan

+0

我看到了鏈接,但例如在我的情況下,數據庫上的任何變化都會保留在UT數據庫上。我看不到我的回答規定的其他方式,如果你找到一個更好的請回答自己對大家有幫助:) –

回答

0

解決方案1 ​​

我使用一個很好的做法,但它取決於你的生產方針,如果從UT調用,則不承諾。所以每次你得到一個回滾。

解決方案2

如果這是不可能的,因爲程序必須影響表什麼的,你可以得到記錄和調用存儲過程用自己的回退過程,只有從UT

稱爲

解決方案3

而且,在任何情況下,對於這個建議的工作是爲了讓UT做的環境中,用自己的數據庫中的TFS代理運行構建和運行測試時不接觸任何CRI tical數據。

如果您想查看其中一些答案,請發表評論,如果您告訴我哪種方法更適合您的使用,我可以幫助您更多。

+0

對不起我的英語水平,請自由編輯這個答案 –

+0

我怎麼告訴它回滾每次我根據我的特定樣本調用單元測試?我將我的單元測試設置爲部署到測試數據庫,因此我可以根據自己的需要對它進行清理和清理。 – Kairan

+0

不,您必須修改您的存儲過程,您只能直接回滾事務命令,不執行con過程。嘗試找到這樣的信息:http://stackoverflow.com/questions/3935900/how-to-commit-and-rollback-transaction-in-sql-server –