HOW TO:建立資料驅動型自動程式碼 UI 測試
使用 Visual Studio Premium 或 Visual Studio Ultimate 時,您可以建立「自動程式碼 UI 測試」(Coded UI Test),測試應用程式的使用者介面 (UI) 是否正確運作。 自動程式碼 UI 測試執行應用程式使用者介面控制項的動作,並驗證指定的控制項是否顯示正確值。 如需如何建立自動程式碼 UI 測試的詳細資訊,請參閱 HOW TO:建立自動程式碼 UI 測試。
建立具有指定之資料的自動程式碼 UI 測試之後,您可能要以不同的資料集來多次執行自動程式碼 UI 測試,以測試不同的條件。 若要這樣做,您可以從資料來源加入參數值,以建立資料驅動型自動程式碼 UI 測試。 測試來源中的每一個資料列都是自動程式碼 UI 測試的反覆項目。 測試的整體結果取決於所有反覆項目的結果。 例如,如果一個測試反覆項目失敗,整體測試結果就是失敗。
如需資料驅動型測試的詳細資訊,請參閱 HOW TO:建立資料驅動型單元測試。
當透過錄製方法或判斷提示來產生自動程式碼 UI 測試的方法或判斷提示時,錄製的方法中參考的所有常數都會參數化至參數類別。 例如,如果您加入名為 AddTwoNumbers 的方法,則自動程式碼 UI 測試架構會自動產生另一個名為 AddTwoNumbersParams 的類別,並在這個類別中針對您錄製該方法時使用的每個常數值各加入一個欄位。 如果您產生名為 AssertForAdd 的判斷提示方法,此架構會針對預期值加入名為 AssertforAddExpectedValues 的類別。 這些類別是自動產生的,將用於下列步驟。
變更測試以使用參數的資料來源,同時也會變更測試的原始程式碼檔 (即 CodedUITest1.cs). 您不可以修改 UIMap.Designer.cs 檔案中的程式碼。
在建立自動程式碼 UI 測試之後,您可以使用下列程序中的步驟,將資料來源和參數加入至測試。 這個範例假設方案中具有下列程式碼項目:
名為 CodedUITest1. 的自動程式碼 UI 測試類別
名為 CodedUITestMethod1(). 的測試方法。
測試方法用於計算將兩個數相加的簡式計算器應用程式,可驗證是否已正確將它們相加,如果正確,此測試才算成功。
資料來源是包含下列資料的 .csv 檔案:
Input1 |
Input2 |
ExpectedResult |
---|---|---|
3 |
4 |
7 |
5 |
6 |
11 |
1200 |
24000 |
25200 |
建立檔案,並加入至測試專案中。
建立資料驅動型自動程式碼 UI 測試
若要建立資料驅動型自動程式碼 UI 測試
在 [方案總管] 中,開啟包含測試專案的方案。
按一下 [測試] 功能表,指向 [視窗],然後按一下 [測試檢視]。
顯示自動程式碼 UI 測試的 [測試檢視] 視窗隨即開啟。
在 [測試檢視] 視窗中,以滑鼠右鍵按一下自動程式碼 UI 測試方法,然後按一下 [屬性]。
[屬性] 視窗隨即開啟。
若要選取資料來源以用於自動程式碼 UI 測試,請在 [屬性] 視窗中按一下 [資料連接字串] 右側的省略符號 (...)。
[新測試資料來源精靈] 隨即開啟。
選取您要使用的資料來源類型。 在這個範例中,選取 .csv 資料來源類型。 按 [下一步],輸入 .csv 檔案的路徑和檔案名稱,然後按一下 [完成]。
現在,資料來源可用於此測試方法中。 您可以使用 TestContext.DataRow 存取資料來源中的目前資料列。 您可以利用下列語法來存取每個資料行:
string paramVal = TestContext.DataRow["Input1"]
在 [方案總管] 中,開啟 CodedUITest1.cs 檔案。 對 CodedUITestMethod1() 方法進行下列變更:
在 AddTwoNumbers 方法呼叫之前加入下列兩行程式碼,針對要加入的數字提供值。
this.UIMap.AddTwoNumbersParams.TextInput1EditText = TestContext.DataRow["Input1"].ToString(); this.UIMap.AddTwoNumbersParams.TextInput2EditText = TestContext.DataRow["Input2"].ToString();
在 AssertforAdd 方法呼叫之前加入下列一行程式碼,提供判斷提示方法的值。
this.UIMap.AssertforAddExpectedValues.TextAnswerEditText = TestContext.DataRow["ExpectedResult"].ToString();
已加入參數和資料來源的自動程式碼 UI 測試方法如下所示:
[DeploymentItem("DataDriven.csv"), DataSource("Microsoft.VisualStudio.TestTools.DataSource.CSV", "|DataDirectory|\\DataDriven.csv", "DataDriven#csv", DataAccessMethod.Sequential), TestMethod] public void CodedUITestMethod1() { // To generate code for this test, select "Generate Code for // Coded UI Test" from the shortcut menu and select one of // the menu items. this.UIMap.AddTwoNumbersParams.TextInput1EditText = TestContext.DataRow["Input1"].ToString(); this.UIMap.AddTwoNumbersParams.TextInput2EditText = TestContext.DataRow["Input2"].ToString(); this.UIMap.AddTwoNumbers(); this.UIMap.AssertforAddExpectedValues.TextAnswerEditText = TestContext.DataRow["ExpectedResult"].ToString(); this.UIMap.AssertforAdd(); }
儲存對 CodedUITest1.cs 原始程式碼檔所做的變更。
若要執行自動程式碼 UI 測試,請在 [測試檢視] 視窗中以滑鼠右鍵按一下自動程式碼 UI 測試,然後按一下 [執行選取範圍]。
測試執行之後,所有測試反覆項目的整體測試結果會顯示在 [測試結果] 視窗中。 若要查看每個反覆項目的詳細資料,請按兩下 [測試結果] 中的測試。