共用方式為


逐步解說:建立和執行智慧型裝置單元測試

更新:2007 年 11 月

本逐步解說將說明如何使用適用於裝置專案的 Team System 測試工具,建立、執行和自訂一系列的測試。您會從開發中的 C# 智慧型裝置應用程式開始進行。然後,您會建立測試專案、建立單元測試、執行測試,並檢查其結果。

注意事項:

您的電腦可能會在下列說明中,以不同名稱或位置顯示某些 Visual Studio 使用者介面項目。您所擁有的 Visual Studio 版本以及使用的設定會決定這些項目。如需詳細資訊,請參閱 Visual Studio 設定

在這個逐步解說中,您將完成下列工作:

  • 開啟現有的專案並建立方法。

  • 建立單元測試和裝置測試專案。

  • 檢視回合組態。

  • 執行單元測試。

  • 從命令提示字元執行單元測試。

必要條件

在能夠開始此逐步解說之前,您必須先完成下列程序:逐步解說:為裝置建立 Windows Form 應用程式。必要條件逐步解說會在 Pocket PC 2003 模擬器上安裝 .NET Compact Framework 2.0,這是完成這個逐步解說的必要項目。您可以讓模擬器視窗繼續開啟著,或是儲存模擬器的狀態。如需詳細資訊,請參閱儲存狀態檔

開啟現有的專案並建立方法

若要開啟現有的專案並建立方法

  1. 啟動 Visual Studio。

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

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

  3. 巡覽至您在必要之逐步解說中所建立的 DeviceSample 專案,然後按一下 [確定]。

    DeviceSample 專案便會在 [方案總管] 中顯示。

  4. 以滑鼠右鍵按一下 [方案總管] 中的 [Form1.cs] (C#) 或 [Form1.vb] (Visual Basic),然後按一下 [檢視程式碼] 在 [程式碼編輯器] 中開啟該檔案。

  5. 將游標置於 Form1 類別內部。

  6. 插入下列程式碼:

    public int Add(int a, int b) {return a + b;}
    
    Public Function Add(ByVal a As Integer, ByVal b As Integer) As Integer 
        Return a + b
    End Function 'Add
    
  7. 在 [建置] 功能表上,按一下 [建置方案]。

    現在您已擁有名為 DeviceSample 的專案,其中包括可以測試的原始程式碼。DeviceSample 的命名空間 DeviceSample 包含公用類別 Form1,您將在下列程序中測試其方法。

建立單元測試和裝置測試專案

若要建立單元測試和裝置測試專案

  1. 以滑鼠右鍵按一下 [方案總管] 中的 [Form1.cs] (C#) 或 [Form1.vb] (Visual Basic),然後按一下 [檢視程式碼] 在 [程式碼編輯器] 中開啟該檔案。

    注意事項:

    DeviceSample 專案包含您所要測試的程式碼,此程式碼又稱為「受測程式碼」(Code Under Test)。

  2. 在 Form1 類別中,捲動至 Add 方法。

  3. 以滑鼠右鍵按一下 [Add] 方法,並選取 [建立單元測試]。

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

    在 [目前的選取範圍] 窗格中,會有樹狀結構顯示包含 Form1 類別之組件 (Assembly) 的類別和成員階層架構。您可以使用這個頁面為這些成員的任何選取範圍產生單元測試,並選擇一個測試專案,以便將產生的單元測試放置到其中。

    在此樹狀結構中,只有 [Add] 方法是選取的。請將該方法維持選取的狀態。

  4. 對於 [輸出專案],按一下 [建立新智慧型裝置 Visual C# 測試專案]。

    注意事項:

    測試專案的語言並不需要符合專案的語言。例如,您可以在 Visual Basic 裝置專案中建立智慧型裝置 Visual C# 測試專案。

  5. 按一下 [設定]。

    [測試產生設定] 對話方塊隨即出現。在 [命名設定] 群組中,您可以變更測試檔案、測試類別和測試方法在產生時的命名方式。在 [一般] 群組中,您可以變更測試產生的其他設定。維持這些設定的預設值,然後按一下 [確定]。

  6. 在 [建立單元測試] 對話方塊中,按一下 [確定]。

    [新增測試專案] 對話方塊隨即出現。

  7. 接受預設名稱,並按一下 [建立]。

    這樣便會建立名為 TestProject1 的專案,其中含有單元測試,也就是名為 DeviceSample.vsmdi 的檔案。該檔案含有測試清單與測試的相關資訊,以及名為 SmartDeviceTestRun.testrunConfig 的檔案,其中則含有該在何處及如何執行測試的資訊。

    這樣會對測試專案加入名為 Form1Test.cs 的檔案,其中含有一個測試類別。

    注意事項:

    每個測試方法都會自動獲得 TestMethod() 屬性 (Attribute) 的指派。每個測試都對應至所要測試之「受測程式碼」(Code Under Test) 中的單一方法。測試方法都會位於被指派之 TestClass() 屬性的測試類別中。

  8. 在 Form1Test.cs 中,指定所要測試之變數的值。捲動至 [AddTest] 方法,您便會在該處看到三行 // TODO,它們會指出所要設定的變數,分別是 a、b 和 expected。

  9. 設定下列的值:

    int a = 4;
    int b = 5;
    int expected = 9;
    

    如此會指定以 4 和 5 的值呼叫方法時,將預期得到 9 的傳回值。

  10. 將這個 Assert 陳述式標記為註解。

    Assert.Inconclusive("Verify the correctness of this test method.");
    

    這個剩餘的 Assert 陳述式會將預期結果 (9) 與呼叫 Form1 類別之 Add 方法的實際結果進行比較。如果兩個值並不相等,Assert 就會傳回 False,而使測試失敗。

  11. 儲存 Form1Tests.cs 檔案。

    您已建立包含了為 DeviceSample 專案進行測試的原始程式碼檔案。現在您已經完成準備工作,可以針對 DeviceSample 專案的程式碼,在 Form1Test 類別中執行測試。

檢視回合組態

若要檢視回合組態

  1. 在 [方案總管] 中,按兩下名為 SmartDeviceTestRun.testrunConfig 的檔案。

  2. 按一下 Hosts。

  3. 請確認 Host type 設定為 Smart Device,Platform 設定為 Pocket PC 2003,而且 Device 設定為 Pocket PC 2003 SE Emulator。

  4. 請按 [關閉] 結束。

    您已檢視了指定執行測試之內容的回合組態。

執行單元測試

若要執行和自訂單元測試

  1. 指向 [測試] 功能表上的 [視窗],然後按一下 [測試檢視]。

    [測試檢視] 視窗隨即出現。

  2. 以滑鼠右鍵按一下 [AddTest],然後按一下 [執行選取範圍]。

    Visual Studio 便會將測試部署到裝置模擬器並執行測試。如果 [測試結果] 視窗尚未開啟,則該視窗現在就會予以開啟。

    當測試正在執行時,在 [測試結果] 視窗的 [結果] 欄中,測試狀態會顯示為 [執行中]。當測試回合結束後,測試的結果就會變更為 [成功]。

    注意事項:

    當您部署測試時,Visual Studio 不會將 .NET Compact Framework 或 SQL Server Compact 3.5 自動部署和安裝到目標裝置或模擬器。您必須先將它們安裝在模擬器或裝置中,然後再執行測試。如需詳細資訊,請參閱 HOW TO:在裝置上安裝 .NET Compact FrameworkHOW TO:在裝置上安裝 SQL Server Compact 3.5

  3. 在 [測試結果] 視窗中,按兩下代表該測試的資料列。

    這樣就會開啟 [測試結果詳細資料] 頁面,其中含有關於測試結果的資訊。

    您已執行了 Form1Test 測試類別之產生的 AddTest 方法,並已檢視過結果。

從命令提示字元執行單元測試

若要執行和自訂單元測試

  1. 按一下 [開始],依序指向 [所有程式]、[Microsoft Visual Studio 2008]、[Visual Studio Tools],然後按一下 [Visual Studio 2008 命令提示字元]。

    命令提示字元便會開啟至資料夾:drive:\Program Files\Microsoft Visual Studio 9.0\VC。

  2. 變更為包含測試專案所建置之組件的資料夾。

    若要這麼做,請先變更至方案資料夾。若為在必要之逐步解說中所建立的 DeviceSample 方案,則此資料夾為:drive:\Users\username\My Documents\Visual Studio\Projects\DeviceSample。然後在命令提示字元輸入下列命令,將目錄變更為測試專案的資料夾:

    cd TestProject1\bin\Debug

    注意事項:

    您也可以指定完整路徑,從任何資料夾執行 MSTest.exe。

    這個資料夾便含有您在「建立和執行單元測試」程序中所建立的測試專案。而測試專案組件 TestProject1.dll 則包含了一些單元測試。

    注意事項:

    您的實際執行程式碼 (Production Code) 專案和測試專案將會產生相異的組件。請確定針對測試專案的組件執行命令列公用程式,而非實際執行程式碼專案的組件。

  3. 使用命令列公用程式測試應用程式。

    在命令提示字元輸入下列命令:

    MSTest /testcontainer:TestProject1.dll /runconfig:..\..\..\SmartDevicetestrun.testrunconfig

    注意事項:

    在智慧型裝置上執行單元測試時,您必須指定 /runconfig 選項。

    這個命令會執行組件中的所有測試,並會傳回如下的結果:

    正在載入 testproject1.dll...

    正在啟動執行...

    結果 最上層測試

    ------- ---------------

    成功 TestProject1.Form1Test.AddTest

    1/1 測試成功

    摘要

    -------

    測試回合已完成。

    成功 1

    ---------

    總計 1

    結果檔案: <path>\<test run name>.trx

    回合組態:預設回合組態

    注意事項:

    您可以在 Visual Studio 中開啟執行 mstest.exe 所產生的 .trx 檔案,對測試結果進行其他檢查。如需可以與 MSTest 命令搭配使用之完整選項的詳細資訊,請參閱 MSTest.exe 命令列選項

    由於能在批次檔或其他公用程式中啟動,MSTest.exe 命令列公用程式尤其有助於自動化測試回合。

請參閱

概念

單元測試架構

其他資源

使用單元測試

智慧型裝置專案的測試工具