2012-07-16 47 views
1

我想對不同的數據庫運行teambuild的單元測試(不止一次),例如,我想測試我的構建編譯,然後對SQLServer運行相同的測試套件,然後運行Oracle等數據庫。我想針對多個不同的數據庫運行teambuild的單元測試(不止一次)

我很確定我可以做一些笨拙的建設/測試對第一個配置文件,然後建立/測試對第二個配置文件等,但我正在尋找更優雅的東西(最好沒有毫無意義的第二次重新編譯)

謝謝

回答

1

對於每種數據庫類型,您都需要單獨進行單元測試(這些被認爲是系統測試,因爲它們涉及數據庫)。如果同一個單元測試可能會失敗1個數據庫平臺並通過另一個測試,那麼當您查看該測試的通過/失敗狀態以及該測試的測試歷史記錄時,它不會告訴您任何具體的事情。否則,考慮解耦或抽象數據庫連接,以便在設置測試時以編程方式更改數據庫連接(請參見MSTEST unit test framework中的[ClassInitialize()]和[TestInitialize()]屬性)。

優雅的解決方案是不依賴數據庫進行單元測試;爲數據庫創建單獨的測試,以檢查您正在調用的查詢和過程所返回的數據。

Visual Studio 2010 Premium有capability of running unit tests to verify data and behaviour of SQL Server 2005 (and later) DBs。如果你不能找到一個測試Oracle DBS的工具或者自己測試系統返回什麼樣的東西(類似ndbUnit可能會有所幫助),我會感到驚訝的。

+0

感謝您的回答。我們解耦了......我們有一個單獨測試過的DAL,它針對我們支持的每個分貝進行了測試,然後經過測試,儘管我只是更加高興地看着剩餘的測試通過每個分貝。 – timB33 2012-07-27 12:23:15

+0

如果您可以分享您爲社區帶來的好處/想出的模式示例,那將會很好,因爲我注意到其他人在堆棧交換站點之間也有類似的問題;您可以在Code Review上發佈它,並獲得一些有價值的反饋! – 2012-07-27 13:49:28

相關問題