逐步解說:建立和執行智慧型裝置單元測試
更新:2007 年 11 月
本逐步解說將說明如何使用適用於裝置專案的 Team System 測試工具,建立、執行和自訂一系列的測試。您會從開發中的 C# 智慧型裝置應用程式開始進行。然後,您會建立測試專案、建立單元測試、執行測試,並檢查其結果。
注意事項: |
---|
您的電腦可能會在下列說明中,以不同名稱或位置顯示某些 Visual Studio 使用者介面項目。您所擁有的 Visual Studio 版本以及使用的設定會決定這些項目。如需詳細資訊,請參閱 Visual Studio 設定。 |
在這個逐步解說中,您將完成下列工作:
開啟現有的專案並建立方法。
建立單元測試和裝置測試專案。
檢視回合組態。
執行單元測試。
從命令提示字元執行單元測試。
必要條件
在能夠開始此逐步解說之前,您必須先完成下列程序:逐步解說:為裝置建立 Windows Form 應用程式。必要條件逐步解說會在 Pocket PC 2003 模擬器上安裝 .NET Compact Framework 2.0,這是完成這個逐步解說的必要項目。您可以讓模擬器視窗繼續開啟著,或是儲存模擬器的狀態。如需詳細資訊,請參閱儲存狀態檔。
開啟現有的專案並建立方法
若要開啟現有的專案並建立方法
啟動 Visual Studio。
在 [檔案] 功能表上,指向 [開啟],再按 [專案/方案]。
[開啟專案] 對話方塊隨即出現。
巡覽至您在必要之逐步解說中所建立的 DeviceSample 專案,然後按一下 [確定]。
DeviceSample 專案便會在 [方案總管] 中顯示。
以滑鼠右鍵按一下 [方案總管] 中的 [Form1.cs] (C#) 或 [Form1.vb] (Visual Basic),然後按一下 [檢視程式碼] 在 [程式碼編輯器] 中開啟該檔案。
將游標置於 Form1 類別內部。
插入下列程式碼:
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
在 [建置] 功能表上,按一下 [建置方案]。
現在您已擁有名為 DeviceSample 的專案,其中包括可以測試的原始程式碼。DeviceSample 的命名空間 DeviceSample 包含公用類別 Form1,您將在下列程序中測試其方法。
建立單元測試和裝置測試專案
若要建立單元測試和裝置測試專案
以滑鼠右鍵按一下 [方案總管] 中的 [Form1.cs] (C#) 或 [Form1.vb] (Visual Basic),然後按一下 [檢視程式碼] 在 [程式碼編輯器] 中開啟該檔案。
注意事項: DeviceSample 專案包含您所要測試的程式碼,此程式碼又稱為「受測程式碼」(Code Under Test)。
在 Form1 類別中,捲動至 Add 方法。
以滑鼠右鍵按一下 [Add] 方法,並選取 [建立單元測試]。
[建立單元測試] 對話方塊隨即出現。
在 [目前的選取範圍] 窗格中,會有樹狀結構顯示包含 Form1 類別之組件 (Assembly) 的類別和成員階層架構。您可以使用這個頁面為這些成員的任何選取範圍產生單元測試,並選擇一個測試專案,以便將產生的單元測試放置到其中。
在此樹狀結構中,只有 [Add] 方法是選取的。請將該方法維持選取的狀態。
對於 [輸出專案],按一下 [建立新智慧型裝置 Visual C# 測試專案]。
注意事項: 測試專案的語言並不需要符合專案的語言。例如,您可以在 Visual Basic 裝置專案中建立智慧型裝置 Visual C# 測試專案。
按一下 [設定]。
[測試產生設定] 對話方塊隨即出現。在 [命名設定] 群組中,您可以變更測試檔案、測試類別和測試方法在產生時的命名方式。在 [一般] 群組中,您可以變更測試產生的其他設定。維持這些設定的預設值,然後按一下 [確定]。
在 [建立單元測試] 對話方塊中,按一下 [確定]。
[新增測試專案] 對話方塊隨即出現。
接受預設名稱,並按一下 [建立]。
這樣便會建立名為 TestProject1 的專案,其中含有單元測試,也就是名為 DeviceSample.vsmdi 的檔案。該檔案含有測試清單與測試的相關資訊,以及名為 SmartDeviceTestRun.testrunConfig 的檔案,其中則含有該在何處及如何執行測試的資訊。
這樣會對測試專案加入名為 Form1Test.cs 的檔案,其中含有一個測試類別。
注意事項: 每個測試方法都會自動獲得 TestMethod() 屬性 (Attribute) 的指派。每個測試都對應至所要測試之「受測程式碼」(Code Under Test) 中的單一方法。測試方法都會位於被指派之 TestClass() 屬性的測試類別中。
在 Form1Test.cs 中,指定所要測試之變數的值。捲動至 [AddTest] 方法,您便會在該處看到三行 // TODO,它們會指出所要設定的變數,分別是 a、b 和 expected。
設定下列的值:
int a = 4; int b = 5; int expected = 9;
如此會指定以 4 和 5 的值呼叫方法時,將預期得到 9 的傳回值。
將這個 Assert 陳述式標記為註解。
Assert.Inconclusive("Verify the correctness of this test method.");
這個剩餘的 Assert 陳述式會將預期結果 (9) 與呼叫 Form1 類別之 Add 方法的實際結果進行比較。如果兩個值並不相等,Assert 就會傳回 False,而使測試失敗。
儲存 Form1Tests.cs 檔案。
您已建立包含了為 DeviceSample 專案進行測試的原始程式碼檔案。現在您已經完成準備工作,可以針對 DeviceSample 專案的程式碼,在 Form1Test 類別中執行測試。
檢視回合組態
若要檢視回合組態
在 [方案總管] 中,按兩下名為 SmartDeviceTestRun.testrunConfig 的檔案。
按一下 Hosts。
請確認 Host type 設定為 Smart Device,Platform 設定為 Pocket PC 2003,而且 Device 設定為 Pocket PC 2003 SE Emulator。
請按 [關閉] 結束。
您已檢視了指定執行測試之內容的回合組態。
執行單元測試
若要執行和自訂單元測試
指向 [測試] 功能表上的 [視窗],然後按一下 [測試檢視]。
[測試檢視] 視窗隨即出現。
以滑鼠右鍵按一下 [AddTest],然後按一下 [執行選取範圍]。
Visual Studio 便會將測試部署到裝置模擬器並執行測試。如果 [測試結果] 視窗尚未開啟,則該視窗現在就會予以開啟。
當測試正在執行時,在 [測試結果] 視窗的 [結果] 欄中,測試狀態會顯示為 [執行中]。當測試回合結束後,測試的結果就會變更為 [成功]。
注意事項: 當您部署測試時,Visual Studio 不會將 .NET Compact Framework 或 SQL Server Compact 3.5 自動部署和安裝到目標裝置或模擬器。您必須先將它們安裝在模擬器或裝置中,然後再執行測試。如需詳細資訊,請參閱 HOW TO:在裝置上安裝 .NET Compact Framework 和 HOW TO:在裝置上安裝 SQL Server Compact 3.5。
在 [測試結果] 視窗中,按兩下代表該測試的資料列。
這樣就會開啟 [測試結果詳細資料] 頁面,其中含有關於測試結果的資訊。
您已執行了 Form1Test 測試類別之產生的 AddTest 方法,並已檢視過結果。
從命令提示字元執行單元測試
若要執行和自訂單元測試
按一下 [開始],依序指向 [所有程式]、[Microsoft Visual Studio 2008]、[Visual Studio Tools],然後按一下 [Visual Studio 2008 命令提示字元]。
命令提示字元便會開啟至資料夾:drive:\Program Files\Microsoft Visual Studio 9.0\VC。
變更為包含測試專案所建置之組件的資料夾。
若要這麼做,請先變更至方案資料夾。若為在必要之逐步解說中所建立的 DeviceSample 方案,則此資料夾為:drive:\Users\username\My Documents\Visual Studio\Projects\DeviceSample。然後在命令提示字元輸入下列命令,將目錄變更為測試專案的資料夾:
cd TestProject1\bin\Debug
注意事項: 您也可以指定完整路徑,從任何資料夾執行 MSTest.exe。
這個資料夾便含有您在「建立和執行單元測試」程序中所建立的測試專案。而測試專案組件 TestProject1.dll 則包含了一些單元測試。
注意事項: 您的實際執行程式碼 (Production Code) 專案和測試專案將會產生相異的組件。請確定針對測試專案的組件執行命令列公用程式,而非實際執行程式碼專案的組件。
使用命令列公用程式測試應用程式。
在命令提示字元輸入下列命令:
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 命令列公用程式尤其有助於自動化測試回合。