HOW TO:將 Visual Studio 2010 自訂測試條件從舊版升級至 SQL Server Data Tools
若要使用在 SQL Server Data Tools 以前版本中建立的測試單元條件,必須將它升級:
更新參考
更新類別屬性和型別參考
安裝升級的測試條件
更新參考
若要更新專案參考:
在 [Visual Basic方案總管] 中按一下 [顯示所有檔案] (僅限 )。
展開 [方案總管] 中的 [參考] 節點。
以滑鼠右鍵按一下下列組件參考,然後按一下 [移除]:
Microsoft.Data.Schema.UnitTesting
Microsoft.Data.Schema
在 [專案] 功能表中,或在 [方案總管] 中以滑鼠右鍵按一下專案資料夾,按一下 [加入參考]。
按一下 [.NET] 索引標籤。
在 [元件名稱] 清單中,選取 System.ComponentModel.Composition,然後按一下 [確定]。
新增必要的組件參考。以滑鼠右鍵按一下專案節點,然後按一下 [加入參考]。按一下 [瀏覽] 並巡覽至 C:\Program Files (x86)\MicrosoftSQL Server\110\DAC\Bin 資料夾。選擇 Microsoft.Data.Tools.Schema.Sql.dll,並按一下 [新增],然後按一下 [確定]。
按一下 [專案] 功能表上的 [卸載專案]。
在 [方案總管] 中,以滑鼠右鍵按一下 [專案],然後選擇 [編輯project_name**.csproj**]。
匯入 Microsoft.CSharp.targets 之後,加入下列 Import 陳述式:
<Import Project="$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v10.0\SSDT\Microsoft.Data.Tools.Schema.Sql.UnitTesting.targets" Condition="'$(VisualStudioVersion)' == ''" /> <Import Project="$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)\SSDT\Microsoft.Data.Tools.Schema.Sql.UnitTesting.targets" Condition="'$(VisualStudioVersion)' != ''" />
儲存並關閉檔案。在 [方案總管] 中,以滑鼠右鍵按一下專案,然後選擇 [重新載入專案]。
開啟測試條件類別,然後移除以 Microsoft.Data.Schema 開頭的所有 Using 陳述式。移除最簡單的方式是以滑鼠右鍵按一下檔案,依序選擇 [組合管理 Using] 和 [移除和排序]。下列 Using 陳述式必須移除:
using Microsoft.Data.Schema.UnitTesting; using Microsoft.Data.Schema.UnitTesting.Conditions; using Microsoft.Data.Schema.Extensibility; using Microsoft.Data.Schema;
將下列 Using 陳述式加入至檔案 (如果沒有的話):
using System.ComponentModel; using Microsoft.Data.Tools.Schema.Sql.UnitTesting; using Microsoft.Data.Tools.Schema.Sql.UnitTesting.Conditions;
您的測試條件現在就會使用 SQL Server 單元測試組件參考。
更新類別屬性和型別參考
將較舊的單元測試類別屬性取代為新屬性。SQL Server 單元測試擴充性現在是以 Managed Extensibility Framework (MEF) 為基礎。您也必須更新一些型別參考。
更新類別屬性
更新程式碼,如下所示:
移除 DatabaseSchemaProviderCompatibility 屬性。這個 (這些) 屬性是舊版的擴充性功能所需,SQL Server 單元測試不支援它們。
移除 DisplayName 屬性。顯示名稱會包含在新屬性中。
加入新的 ExportTestCondition 屬性。必須有這個屬性,才能在 SQL Server 單元測試中探索並使用您的測試條件。ExportTestCondition 並取代 DatabaseSchemaProviderCompatibility 屬性。ExportTestCondition 採用兩個參數:
DisplayName 是第一個參數。它取代 DisplayName 屬性,用來描述這個型別的所有測試條件。
第二個參數是用來唯一識別您的擴充功能。您可以使用 typeof(NewTestCondition) 只傳入型別,因為它應該是唯一的。不過,如果願意的話,也可以傳遞字串識別碼。
類別定義應該變更如下:
之前:
[DatabaseSchemaProviderCompatibility(typeof(DatabaseSchemaProvider))] [DatabaseSchemaProviderCompatibility(null)] [DisplayName("NewTestCondition")] public class NewTestCondition:TestCondition { // Additional implementation to be added here }
之後:
[ExportTestCondition("NewTestCondition ", typeof(NewTestCondition))] public class NewTestCondition:TestCondition { // Additional implementation to be added here }
更新型別參考
SQL Server 單元測試架構中已經變更一些型別名稱。若要更新程式碼以使用新型別名稱,請使用 [編輯] 功能表中的 [尋找和取代]。現在型別名稱開頭為 Sql。類別名稱應該更新如下:
舊的型別名稱 |
新的型別名稱 |
---|---|
ExecutionResult |
SqlExecutionResult |
安裝升級的測試條件
在舊版的資料庫單元測試中,可能需要將測試條件安裝至全域組件快取,或建立包含組件資訊的 XML 檔案。在 SQL Server 單元測試中,不再需要這個額外程序 (如需詳細資訊,請參閱編譯專案及安裝測試條件)。
更新參考之後,驗證組件已簽署及編譯。
接下來,從輸出目錄 (預設為 My Documents\Visual Studio 2010\Projects\<yoursolutionname>\<yourprojectname>\bin\Debug\),將組件檔複製到 %Program Files%\Microsoft Visual Studio <Version>\Common7\IDE\Extensions\Microsoft\SQLDB\TestConditions 目錄。當 Visual Studio 啟動時,它會識別 TestConditions 目錄中的任何擴充功能,並提供這些擴充功能用於工作階段:
將需要使用新測試條件的現有測試升級
找出使用舊測試條件且需要使用新條件的所有測試專案。確定這些測試專案都已升級。如需詳細資訊,請參閱升級包含資料庫單元測試的舊版測試專案。
移除舊測試條件的組件參考。
將新的 SQL Server 單元測試加入至專案,在專案中建立已升級測試條件的組件參考。也必須加入測試類別,以建立參考。加入參考之後,可以刪除測試類別。