共用方式為


逐步解說:建立隔離開發環境的基礎

在本逐步解說中,已經建立了「資料庫專案」(Database Project),而且也加入了版本控制。 此資料庫專案包含與實際執行伺服器相符的結構描述定義。 在開始對資料庫專案進行開發工作之前,您需要先建立品質基礎,包括設定「資料庫單元測試」(Database Unit Test)、定義「資料產生計劃」(Data Generation Plan)、產生測試資料,以及執行這些測試。 執行測試時,會建置並部署資料庫到「隔離開發環境」(Isolated Development Environment)、以產生的資料填入資料庫,然後執行單元測試報告結果。

本逐步解說所述的工作包括下列各項:

  1. 如何自訂隔離開發環境的部署設定。

  2. 如何建置並部署資料庫到隔離開發環境。

  3. 如何建立「資料產生計劃」(Data Generation Plan),並加以自訂以產生更多實際可用的測試資料。

  4. 如何為資料庫專案包含的預存程序定義單元測試。

  5. 如何產生測試資料,並建置和執行單元測試。

  6. 如何將單元測試加入方案的版本控制,以提供給開發小組使用。

必要條件

若要定義資料庫單元測試以及建立、修改和執行資料產生計劃,您必須先安裝 Visual Studio Premium 或 Visual Studio Ultimate,而且能存取 SQL Server 2008 的 AdventureWorks2008 範例資料庫 (或 SQL Server 2008 R2 的 AdventureWorks2008R2 範例資料庫)。 此外,您必須已完成逐步解說:建立隔離資料庫開發環境中的步驟。

若要自訂隔離開發環境的建置設定

  1. 如果 AdvWorksSandbox 方案已在 [方案總管] 中開啟,請跳至步驟 4。

  2. 在 [檔案] 功能表上,指向 [開啟],並按一下 [專案/方案]。

    [開啟專案] 對話方塊隨即出現。

  3. 按一下 AdvWorksSandbox 方案,然後按一下 [開啟] (這個方案的預設位置是在 My Documents\Visual Studio 2010\Projects\AdvWorksSandbox)。

    AdvWorksSandbox 方案即會在 [方案總管] 中開啟。

  4. 按一下 [方案總管] 中的 [AdvWorksSandbox] 節點。

  5. 按一下 [專案] 功能表上的 [AdvWorksSandbox 屬性]。

  6. 按一下 [部署] 索引標籤。

  7. 選取 [為下列項目設定部署設定:] 下拉式清單中的 [我的隔離開發環境]。

    注意事項注意事項

    您為隔離的開發環境設定的部署設定,會儲存在您的資料庫專案所在資料夾中的 .user 檔案內。 .user 檔案不會簽入至版本控制中。 這項設計可讓每個開發人員都能為其隔離的開發環境進行設定。

  8. 按一下 [目標連接] 旁邊的 [編輯]。

    [連接屬性] 對話方塊隨即出現。

    您可以在這裡自訂本機隔離開發環境的連接字串。 建議的做法是每位資料庫開發人員都更新私人的資料庫複本,如此變更就不會對小組其他成員產生影響。 當開發人員完成測試變更,並準備好提供給小組使用時,可以透過中央版本控制系統共用變更。 在逐步解說:建立隔離資料庫開發環境中,已設定了目標資料庫名稱,但尚未設定連接。

  9. 輸入或按一下隔離開發環境要使用的伺服器名稱。 例如,若要使用本機執行個體,請輸入 (local)。

    重要事項重要事項

    如果您將隔離開發資料庫部署至您在先前逐步解說中部署的相同伺服器,就會發生錯誤。 發生錯誤的原因是您已經建立了檔案。 您可以在 FileStreamDocuments.sqlfile.sql 檔案 (若為 SQL Server 2008 R2,則為 FileStreamDocuments2008R2.sqlfile.sql) 中變更 FILENAME 參數,藉以更正此錯誤。 將此參數變更為符合下列程式碼:FILENAME = '$(DefaultDataPath)SandboxDocuments-IDE')

  10. 按一下要用來連接到資料庫伺服器的驗證類型。

    預設會指定 Windows 驗證。

  11. 按一下 [確定]。

    目標連接會顯示連接資訊。

  12. 按一下 [檔案] 功能表上的 [儲存選取項目],儲存您對資料庫專案屬性所做的變更。

若要建置並部署資料庫到隔離開發環境

  1. 在 [建置] 功能表上,按一下 [建置方案]。

    資料庫專案隨即會建置,並在 [輸出] 視窗中顯示結果。

  2. 按一下 [方案總管] 中的 [AdvWorksSandbox] 節點。

  3. 按一下 [建置] 功能表上的 [部署 ProjectName]。 您也可以用滑鼠右鍵按一下 [AdvWorksSandbox] 節點,然後按一下 [部署]。

    資料庫專案隨即建置、產生部署指令碼,然後再將指令碼部署到您在資料庫專案屬性中指定的隔離資料庫開發伺服器。

    接下來將產生隔離開發環境所需的測試資料。

產生測試資料

現在已經有隔離資料庫可供開發,接著就是需要測試資料來進行單元測試。 首先需要建立預設資料產生計劃,然後再自訂該計劃來產生更多實際可用的資料。 在這個範例中,您只會為資料庫的資料表和資料行子集設定資料產生。 您會設定產生 Employee 資料表和 StateProvince 資料表的資料。

StateProvince 資料表中的原始資料並非機密資料。 因此,您可以使用原始資料填入隔離的開發資料庫。

不過,請針對 Employee 資料表,對預設產生計劃做下列變更:

  • Title 應該是下列其中一項:Developer、Sr. Developer、Tester、Sr. Tester、Project Manager、Sales Associate 或 Sr. Sales Associate。

  • BirthDate 必須至少為 18 年前,而且不得早於 1930 年 1 月 1 日。 這個規格符合資料表中該資料行的條件約束。

  • Marital Status 必須為 "M" 或 "S"。

  • Gender 必須為 "M" 或 "F"。

  • HireDate 必須為今天或早於今天的日期,以及 2000 年 1 月 1 日當天或以後。

  • VacationHours 必須是範圍從 -10 到 160 的一般分佈。

  • ModifiedDate 必須是介於 2000 年 1 月 1 日當天和今天之間 (含頭尾) 的日期。 大多數的記錄會是最近更新的。

  • Person 資料表中的 AdditionalContactInfo 和 Demographics 必須取自來源 AdventureWorks 資料庫。

若要建立資料產生計劃

  1. 展開 [方案總管] 中的 [AdvWorksSandbox] 節點,然後按一下 [資料產生計劃] 資料夾。

  2. 按一下 [專案] 功能表上的 [加入新項目]。

    [加入新項目] 對話方塊隨即出現。

  3. 按一下 [分類] 清單中的 [資料產生計劃]。

  4. 按一下 [範本] 清單中的 [資料產生計劃]。

  5. 在 [名稱] 中輸入 AWGenPlan.dgen,然後按一下 [加入]。

    名為 AWGenPlan 的資料產生計劃便會新增至資料庫專案,並在編輯器中開啟。 資料庫結構描述會匯入至資料產生計劃。

    接下來將修改 AWGenPlan,以產生更多實際測試資料。

若要限制只產生所需資料表的資料

  1. 以滑鼠右鍵按一下資料產生計劃,然後按一下 [從資料產生中排除所有資料表]。

  2. 在資料產生計劃中,選取下列資料表的核取方塊:HumanResources.Employee、Person.Person、Person.CountryRegion 和 Person.StateProvince。

    接下來將定義 StateProvince 資料表的資料產生計劃。

若要定義 StateProvince 資料表的資料產生計劃

  1. 按一下資料產生計劃中的 [[Person].[StateProvince]]。

  2. 按一下 [資料行詳細資料] 窗格中的 [StateProvinceCode],然後將 [產生器] 欄位設為 [循序資料繫結產生器]。

    這個步驟表示您要使用查詢結果填入這個資料行。

  3. 在 [檢視] 功能表中,按一下 [屬性視窗]。

  4. 在 [屬性] 視窗中,找到 [產生器] 區段的 Connection Information 屬性,按一下與前面步驟匯入資料結構描述之來源資料庫對應的連接。

    這個步驟會指定要用來執行查詢的資料庫連接,讓查詢產生這個資料行的資料。

  5. 在 [屬性] 視窗的 [產生器] 區段中,將 Select Query 屬性的查詢字串設為 SELECT [StateProvinceCode] FROM [Person].[StateProvince]。

  6. 按一下 [資料行詳細資料] 窗格中的 [修改日期]。

  7. 在 [屬性] 視窗的 [產生器] 區段中,將 Max 屬性設為今天的日期,因為記錄不可能是在未來日期修改的。

  8. 在 [屬性] 視窗的 [產生器] 區段中,將 Min 屬性設為 1/1/2000 12:00:00 AM。 在這個範例中,假設該公司從 2000 年年初開始收集資料。

    接下來將指定 Person 資料表的資料產生計劃。

若要定義 Person 資料表的資料產生計劃

  1. 按一下資料產生計劃中的 [[Person].[Person]]。

  2. 在 [資料行詳細資料] 窗格中,按一下 [PersonType],然後將 [產生器] 欄位設為 [規則運算式]。

  3. 在 [屬性] 視窗的 [產生器] 區段中,將 Expression 屬性設為 (GC|SP|EM|IN|VC|SC)。

  4. 按一下 [資料行詳細資料] 窗格中的 [AdditionalContactInfo],然後將 [產生器] 欄位設為 [循序資料繫結產生器]。

    這個步驟表示您要使用查詢結果填入這個資料行。

  5. 在 [檢視] 功能表中,按一下 [屬性視窗]。

  6. 在 [屬性] 視窗中,找到 [產生器] 區段的 Connection Information 屬性,按一下與前面步驟匯入資料結構描述之來源資料庫對應的連接。

    這個步驟會指定要用來執行查詢的資料庫連接,讓查詢產生這個資料行的資料。

  7. 在 [屬性] 視窗的 [產生器] 區段中,將 Query Select Query 屬性的查詢字串設為 SELECT * FROM [Person].[Person]。

  8. 在 [資料行詳細資料] 窗格中,找到 AdditionalContactInfo 的 [產生器輸出] 欄位,然後按一下 [[AdditionalContactInfo]]。

    這個步驟會選取結果集中要與這個資料行建立關聯的資料行。

  9. 按一下 [資料行詳細資料] 窗格中的 [人口統計],然後將 [產生器] 欄位設為 [循序資料繫結產生器]。

    這個步驟表示您要使用查詢結果填入這個資料行。

  10. 在 [檢視] 功能表中,按一下 [屬性視窗]。

  11. 在 [屬性] 視窗中,找到 [產生器] 區段的 Connection Information 屬性,按一下與前面步驟匯入資料結構描述之來源資料庫對應的連接。

    這個步驟會指定要用來執行查詢的資料庫連接,讓查詢產生這個資料行的資料。

  12. 在 [屬性] 視窗的 [產生器] 區段中,將 Query Select Query 屬性的查詢字串設為 SELECT * FROM [Person].[Person]。

  13. 在 [資料行詳細資料] 窗格中,找到 [人口統計] 的 [產生器輸出] 欄位,然後按一下 [人口統計]。

    這個步驟會選取結果集中要與這個資料行建立關聯的資料行。

  14. 按一下 [資料行詳細資料] 窗格中的 [修改日期]。

  15. 在 [屬性] 視窗的 [產生器] 區段中,將 Max 屬性設為今天的日期,因為記錄不可能是在未來日期修改的。

  16. 在 [屬性] 視窗的 [產生器] 區段中,將 Min 屬性設為 1/1/2000 12:00:00 AM。 在這個範例中,假設該公司從 2000 年年初開始收集資料。

    接下來將指定 Employee 資料表的資料產生計劃。

若要定義 Employee 資料表的資料產生計劃

  1. 按一下資料產生計劃中的 [[HumanResources].[Employee]]。

  2. 按一下 [資料行詳細資料] 窗格中的 [JobTitle],然後將 [產生器] 欄位設為 [RegularExpression]。

  3. 在 [屬性] 視窗的 [產生器] 區段中,將 Expression 屬性設為 (Developer|Sr\. Developer|Tester|Sr\.Tester|Project Manager|Sales Associate|Sr\.Sales Associate)。

  4. 按一下 [資料行詳細資料] 窗格中的 [BirthDate]。

    根據預設,[產生器] 欄位設為 [DateTime2]。

  5. 在 [屬性] 視窗的 [產生器] 區段中,將 Max 屬性設為 18 年前的今天 (例如 10/30/1987 11:59:59 PM)。 另外也將 Min 屬性設為 1/1/1930 12:00:00 AM。

  6. 在 [資料行詳細資料] 窗格中,按一下 [MaritalStatus],然後將 [產生器] 欄位設為 [RegularExpression]。

  7. 在 [屬性] 視窗的 [產生器] 區段中,將 Expression 屬性設為 (M|S)。

  8. 在 [資料行詳細資料] 窗格中,按一下 [Gender],然後將 [產生器] 欄位設為 [RegularExpression]。

  9. 在 [屬性] 視窗的 [產生器] 區段中,將 Expression 屬性設為 (M|F)。

  10. 按一下 [資料行詳細資料] 窗格中的 [HireDate]。

    根據預設,[產生器] 欄位設為 [DateTime2]。

  11. 在 [屬性] 視窗的 [產生器] 區段中,將 Max 屬性設為今天的日期 (例如 10/30/2006 11:59:59 PM)。 另外也將 Min 屬性設為 1/1/2000 12:00:00 AM。

  12. 按一下 [資料行詳細資料] 窗格中的 [VacationHours]。

    根據預設,[產生器] 欄位設為 [SmallInt]。

  13. 在 [屬性] 視窗的 [產生器] 區段中,將 Distribution 屬性設為 Normal。

  14. 在 [屬性] 視窗的 [產生器] 區段中,將 Max 屬性設為 160,Min 屬性設為 -10。

  15. 按一下 [資料行詳細資料] 窗格中的 [ModifiedDate]。

    根據預設,[產生器] 欄位設為 [DateTime2]。

  16. 在 [屬性] 視窗的 [產生器] 區段中,將 Distribution 屬性設為 ExponentialInverse。 另外也將 Max 屬性設為今天的日期 (例如 10/30/2006 11:59:59 PM),並將 Min 屬性設為 1/1/2000 12:00:00 AM。

若要調整要產生的資料列數目

  1. 按一下資料產生計劃中的 [[Person].[CountryRegion]]。

  2. 在 [要插入的資料列數] 欄位中輸入 10。

  3. 按一下資料產生計劃中的 [[HumanResources].[Employee]]。

  4. 在 [要插入的資料列數] 欄位中輸入 25。

  5. 按一下資料產生計劃中的 [[Person].[StateProvince]]。

  6. 按一下 [關聯資料表] 欄位中的 [[Person].[CountryRegion]]。

  7. 在 [關聯資料表的相對比例] 欄位中輸入 2:1。

    這個步驟會指定要為 [Person].[StateProvince] 資料表產生的資料列數為 [Person].[CountryRegion] 資料表的兩倍。

  8. 在 [檔案] 功能表上,按一下 [儲存 AWGenPlan.dgen],儲存對資料產生計劃所做的變更。

若要預覽資料產生及產生測試資料

如果執行多次資料產生,HumanResources.Employee 資料表會包含可能干擾資料產生的觸發程序。 若要在自動化測試中執行資料產生,您必須在單元測試中停用 (並於稍後啟用) 那些觸發程序。

若要在這個程序中多次執行資料產生,您必須遵照下列程序:若要在資料產生前後,停用及啟用 Employee 資料表中的觸發程序。 如果只要執行資料產生一次,則請遵照若要驗證資料產生計劃結果程序執行。

預覽資料產生及產生測試資料

  1. 在 [資料] 功能表上,指向 [資料產生器],然後按一下 [預覽資料產生]。

    [資料產生預覽] 視窗便會出現,並且顯示將產生的資料範例。 如果資料符合您指定的準則,請繼續下一個步驟。 如果您必須調整資料產生計劃,請進行適當的變更,然後重複此步驟。

  2. 在 [資料] 功能表上,指向 [資料產生器],然後按一下 [產生資料]。

    [為目標資料庫產生資料] 對話方塊隨即出現。

  3. 在 [目標資料庫] 中,建立 AdvWorksSandbox 資料庫的連接,然後按一下 [確定]。

  4. 當您被詢問「您要先刪除資料表中現有的資料,再產生新資料嗎?」時,請按一下 []。

    將根據您的指定來產生資料。 當完成產生時,會在每一個資料列中顯示綠色的核取記號,以表示所有資料產生成功。 如果未產生資料,則會在 [錯誤清單] 視窗中顯示錯誤。

  5. 跳到名為「若要驗證資料產生計劃結果」的程序。

若要在資料產生前後,停用及啟用 Employee 資料表中的觸發程序

  1. 在產生資料之前,請開啟 [資料] 功能表,指向 [Transact-SQL 編輯器],然後按一下 [新增查詢連接]。

  2. 如果已經存在與隔離開發環境資料庫的連接,請至步驟 7。

  3. 按一下 [新增連接]。

    [連接屬性] 對話方塊隨即出現。

  4. 在 [伺服器名稱] 中,輸入或按一下要部署資料庫的資料庫伺服器名稱,例如:(local)\SQLExpress。

  5. 在 [登入伺服器] 中,按一下 [使用 Windows 驗證]。

  6. 在 [連接至資料庫] 中,按一下 [選取或輸入資料庫名稱],輸入 AdvWorksSandbox,然後按一下 [確定]。

    此時將建立連接,並將其加入至 [連接至資料庫] 對話方塊的清單中。

  7. 在 [連接至資料庫] 對話方塊中,按一下對應於隔離開發環境資料庫的連接字串,然後按一下 [確定]。

    此時將顯示 Transact-SQL 編輯器,並且連接至 AdvWorksSandbox 資料庫。

  8. 按一下 [確定]。

    Transact-SQL 編輯器隨即出現。

  9. 在 Transact-SQL 編輯器中,輸入下列 Transact-SQL:

    DISABLE TRIGGER [HumanResources].[dEmployee] ON [HumanResources].[Employee]
    GO
    
  10. 按一下 Transact-SQL 編輯器工具列上的 [執行 SQL]。

    在 [訊息] 索引標籤上,將顯示下列訊息:

    已成功完成命令。

  11. 按一下包含資料產生計劃的視窗。

  12. 在 [資料] 功能表上,指向 [資料產生器],然後按一下 [預覽資料產生]。

    [資料產生預覽] 視窗便會出現,並且顯示將產生的資料範例。 如果資料符合您指定的準則,請繼續下一個步驟。 如果您必須調整資料產生計劃,請進行適當的變更,然後重複此步驟。

  13. 在 [資料] 功能表上,指向 [資料產生器],然後按一下 [產生資料]。

    [為目標資料庫產生資料] 對話方塊隨即出現。

  14. 在 [目標資料庫] 中,按一下 AdvWorksSandbox 資料庫的連接,然後按一下 [確定]。

  15. 當您被詢問「您要先清除選取資料表的內容,再插入新資料列嗎?」時,請按一下 []。

    將根據您的指定來產生資料。 當完成產生時,會在每一個資料列中顯示綠色的核取記號,以表示所有資料產生成功。 如果未產生資料,則會在 [錯誤清單] 視窗中顯示錯誤。

  16. 按一下 Transact-SQL 編輯器視窗。

  17. 您通常會在此處重新啟用觸發程序。 不過,為了簡化資料庫單元測試,讓它們不需要在單元測試中停用和重新啟用觸發程序,您可以將觸發程序保持在停用狀態。

若要驗證資料產生計劃結果

  1. 指向 [資料] 功能表上的 [Transact-SQL 編輯器],然後按一下 [新增查詢]。

    [連接至資料庫] 對話方塊隨即出現。

  2. 如果隔離開發環境中的資料已有連接存在,請移至步驟 8。

  3. 按一下 [新增連接]。

    [連接屬性] 對話方塊隨即出現。

  4. 在 [伺服器名稱] 中,輸入或按一下要部署資料庫的資料庫伺服器名稱,例如:(local)\SQLExpress。

  5. 在 [登入伺服器] 中,按一下 [使用 Windows 驗證]。

  6. 在 [連接至資料庫] 中,按一下 [選取或輸入資料庫名稱],輸入 AdvWorksSandbox,然後按一下 [確定]。

    此時將建立連接,並將其加入至 [連接至資料庫] 對話方塊的清單中。

  7. 在 [連接至資料庫] 對話方塊中,按一下對應於隔離開發環境資料庫的連接字串,然後按一下 [確定]。

    此時將顯示 Transact-SQL 編輯器,並且連接至 AdvWorksSandbox 資料庫。

  8. 在 Transact-SQL 編輯器中,輸入下列內容:

    SELECT * from HumanResources.Employee;
    
  9. 按 F5 鍵執行查詢。

    結果窗格隨即出現,並顯示資料產生的結果。

  10. 按一下 [檔案] 功能表上的 [關閉],關閉 Transact-SQL 編輯器。

    接下來,您會定義單元測試,用以驗證現有的資料庫程式碼。

定義單元測試

您通常會為所有預存程序、函式和觸發程序定義單元測試。 不過在本逐步解說中,您將只定義一個單元測試做為範例。 您會為 ufnLeadingZeros 函式和 dbo.uspGetManagerEmployees 預存程序定義測試。

ufnLeadingZeros 函式會取得整數並在前面補上 0,傳回該整數的 VARCHAR(8) 字串表示。 若要測試這個函式,您可以傳入值並測試是否獲得預期的結果。

uspGetManagerEmployees 預存程序會接受您指定的員工識別碼,並傳回這位主管的所有下屬員工 (完整階層架構)。 如果初始值相同,資料產生器會產生相同的測試資料,因此您會知道將傳回多少資料列。 這個測試非常簡單。 在實際的專案中,您可能會想建立更詳細的測試,驗證是否傳回正確的員工。

若要建立單元測試

  1. 按一下 [檢視] 功能表上的 [結構描述檢視]。

    [結構描述檢視] 隨即出現 (如果尚未出現)。

  2. 在 [結構描述檢視] 中,依序開啟 [結構描述] 資料夾、[dbo] 資料夾和 [可程式性] 資料夾。

  3. 以滑鼠右鍵按一下 [函式] 資料夾,然後按一下 [建立單元測試]。

    [建立單元測試] 對話方塊隨即出現。

  4. 展開 [目前的選取範圍] 樹狀結構,並選取函式 dbo.ufnLeadingZeros 的核取方塊。 清除任何其他已選取之預存程序或函式的核取方塊。

    注意事項注意事項

    若要實際建立專案基礎,您會為資料庫中的所有函式、預存程序和觸發程序建立單元測試。 為示範程序,本逐步解說將著重在一個函式。

  5. 在 [專案] 中,按一下 [建立新的 Visual C# 測試專案]。

  6. 在 [新專案名稱] 中輸入 AWSandboxTestProject,然後按一下 [確定]。

    單元測試專案隨即建立,而且會出現單元測試的 [專案組態] 對話方塊。

  7. 在 [資料庫連接] 中,按一下 AdvWorksSandbox 的連接。

  8. 在 [部署] 中,清除 [執行測試前自動部署資料庫專案] 核取方塊。

  9. 在 [資料庫狀態] 中,選取 [執行單元測試前先產生測試資料] 核取方塊。

  10. 按一下 [資料庫狀態] 清單中的 [AWGenPlan.dgen]。

  11. 選取 [產生測試資料前先清除資料庫] 核取方塊 (如果尚未選取),然後按一下 [確定]。

    資料庫單元測試專案隨即建立並加入方案中。 資料庫單元測試設計工具會開啟,讓您修改測試條件並撰寫測試。

    注意事項注意事項

    如果您必須修改測試組態,請開啟 [測試] 功能表,然後按一下 [資料庫測試組態]。 [專案組態] 對話方塊隨即出現,您可以在這裡變更組態。

    接下來將指定測試條件並撰寫測試。

若要定義 ufnLeadingZeros 函式的單元測試

  1. 在資料庫單元測試設計工具中,按一下測試清單中的 [dbo.ufnLeadingZeros]。

  2. 驗證第二個清單是否顯示 [測試]。

  3. 將設計工具頂端窗格中的 Transact-SQL 陳述式取代成以下程式碼:

    -- db unit test for dbo.ufnLeadingZeros
    DECLARE @RC VARCHAR (8),
    @Value INT
    
    SELECT @RC = NULL,
    @Value = 27
    
    SELECT @RC = [dbo].[ufnLeadingZeros]( @Value)
    
    IF @RC <> '00000027' 
    RAISERROR(N'ufnLeadingZero: expected "00000027" but got %s.', 16, 1, @RC)
    
    SELECT RC=@RC
    
  4. 在 [測試條件] 窗格中,按一下類型為 Inconclusive 的測試條件,然後按一下 [刪除測試條件] (x) 刪除該測試條件。

  5. 在 [測試條件] 窗格的清單中按一下 [資料列計數],加入資料列計數測試條件,然後按一下 [新增測試條件] (+)。

  6. 在 [屬性] 視窗中,將 [資料列計數] 屬性設為 1。

    如果要強制測試失敗,請將 @Value 從 27 變更為其他值。

    您現在可以準備執行單元測試。

建置並執行單元測試

您現在已定義單元測試,接下來就可以建置並執行這些測試。

若要建置並執行單元測試

  1. 在 [方案總管] 中,以滑鼠右鍵按一下方案節點,然後按一下 [重建方案]。

    這個步驟會強制重建資料庫專案和單元測試專案,確保所有內容都是最新的。

  2. 在 [測試] 功能表中指向 [視窗],然後按一下 [測試清單編輯器]。

    [測試檢視] 視窗會列出數項測試。 預設會建立名為 ManualTest1 和 TestMethod1 的測試。 名為 dbo_ufpLeadingZeroTest 的測試是您在這個逐步解說中建立的測試。

  3. 選取 dbo_ufpLeadingZeroTest 的核取方塊,然後以滑鼠右鍵按一下這個核取方塊,再按一下 [執行核取的測試]。

  4. 檢視 [測試結果] 視窗中的結果。

    資料庫專案會部署至隔離開發環境,接著產生測試資料,最後測試執行並成功。

簽入暫止的變更

現在您已定義單元測試來檢查變更是否會破壞資料庫,這時就可以簽入測試並將方案提供給小組使用。

若要提供方案給小組使用

  1. 指向 [檢視] 功能表上的 [其他視窗],然後按一下 [暫止的變更]。

    [暫止的變更] 視窗隨即出現。

  2. 在 [註解] 中,輸入 Defined data generation plan and baseline unit tests。

  3. 在 [暫止的變更] 視窗中,按一下工具列上的 [簽入]。

    [簽入進度] 對話方塊隨即出現,顯示資料庫專案和所包含的檔案加入版本控制的進度。 [方案總管] 中的圖示會更新,表示檔案已簽入版本控制。

後續步驟

現在您已將方案簽入版本控制,這時小組的每位成員都可以執行被指派的工作。 每個人都可在隔離資料庫開發環境中作業,直到任何變更準備好提供給他人共用。

逐步解說:在隔離的開發環境中執行反覆資料庫開發中,您會在隔離開發環境中使用重構來重新命名資料庫物件。 簽入前,您會先建置、部署和測試變更,然後其他小組成員可以將您的變更與其隔離開發環境同步處理。

請參閱

工作

逐步解說:在隔離的開發環境中執行反覆資料庫開發

概念

使用資料產生器產生資料庫的測試資料

使用單元測試驗證資料庫程式碼

建置和部署資料庫到隔離的開發環境

資料庫專案設定概觀

變更記錄

日期

記錄

原因

已加入 SQL Server 2008 R2 和 AdventureWorks2008R2 的支援。 也更正了客戶回函中指出的一些資料產生和單元測試問題。

SP1 功能變更。