tSQLt測試框架需要爲數據庫設置TRUSTWORTHY ON,併爲服務器啓用SQL CLR。tSQLt TRUSTWORTHY和CLR要求
爲什麼需要這些?沒有CLR對象可以實現相同/相似的功能嗎?
tSQLt測試框架需要爲數據庫設置TRUSTWORTHY ON,併爲服務器啓用SQL CLR。tSQLt TRUSTWORTHY和CLR要求
爲什麼需要這些?沒有CLR對象可以實現相同/相似的功能嗎?
以下功能完全實現爲CLR代碼和將特別困難的(也可能是不可能的),而不CLR做:
除此之外,tSQLt在內部使用CLR爲非常大的字符串生成格式化的輸出,比如可以通過比較兩個表生成的格式化輸出;並在重命名對象時(例如FakeTable或SpyProcedure)生成新的對象名稱。
可以想象,tSQLt可以被修改以刪除這些功能,並且仍然可以使用其基本功能集(當然有一些限制)。但是,隨着我們展望未來tSQLt版本將會發生什麼,很可能在CLR中會做更多的事情。
謝謝Dennis。 Ed(http://msdn.microsoft.com/en-us/library/ms345106.aspx)提到的非對稱密鑰方法是否可能允許刪除TRUSTWORTHY ON要求? –
如果你想使用tSQLt,你可能沒有任何選擇,只能啓用SQL CLR。
有一種方法可以通過創建一個不對稱密鑰來避免將數據庫設置爲TRUSTWORTHY ON的要求 - 請參閱http://msdn.microsoft.com/en-us/library/ms345106.aspx。
如果這是不能接受的,還有其他數據庫單元測試工具,其不需要的對象在數據庫中創建 - 例如DbFit
TRUSTWORTHY ON不再需要。 請參閱發行說明: http://tsqlt.org/748/tsqlt-v1-0-5873-27393-release-notes/
顯而易見的答案是,tSQLt的某些部分由需要訪問外部資源或非託管代碼的SQL CLR代碼組成。至於'是否有可能',好吧,沒有任何東西阻止有人嘗試構建一個運行在純T-SQL中的SQL單元測試框架,但是我希望他們能夠幸運...... – AakashM