如何:將 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)\Microsoft SQL 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 單元測試加入至專案,在專案中建立已升級測試條件的組件參考。 也必須加入測試類別,以建立參考。 加入參考之後,可以刪除測試類別。
另請參閱
意見反應
https://aka.ms/ContentUserFeedback。
即將登場:在 2024 年,我們將逐步淘汰 GitHub 問題作為內容的意見反應機制,並將它取代為新的意見反應系統。 如需詳細資訊,請參閱:提交並檢視相關的意見反應