Android UiAutomator 自動化測試,如何單獨執行指定的 test case ?

當我們寫好 Android UiAutomator 自動化測試的測試案例 (test case) 後,要執行寫好的 test case 會透過下面的指令來執行。

adb shell uiautomator runtest [jar 檔名稱] –c [完整的 package 與 class 名稱]

我們需要指定要跑的測試案例的完整 package 與 class 名稱來執行,舉個例子來說,如果我們寫好的 test case 程式碼如下所示:

package com.autotest;

import com.android.uiautomator.testrunner.UiAutomatorTestCase;

public class UiAutoTest extends UiAutomatorTestCase {

   public void test1() {
      System.out.println("Run test case 1");
   }

   public void test2() {
      System.out.println("Run test case 2");
   }

}

我們可以看到第 1 行的程式碼說明 package 名稱為 com.autotest,而 class 名稱在第 5 行,可看到是 UiAutoTest,所以我們在 -c 的參數要帶入 com.autotest.UiAutoTest,所需執行的指令如下所示:

adb shell uiautomator runtest [jar 檔名稱] –c com.autotest.UiAutoTest

但有時我們寫好的測試案例,卻只想單獨跑一個 test case 時我們該怎麼辦呢 ?

一開始可能會想到,那不就把要想執行的 test case 先把它註解起來不就好了嗎 ?

將程式碼註解起來是可以解決此問題,但如果裡面有很多 test case 就需要註解掉很多 test case,接著再跑 test case 就可以單獨只跑我們想執行的 test case,但是跑完後又要把剛才所註解的測試程式碼解開註解,執行上就有一點麻煩。

那我們可能又會再想到在不想被執行的測試案例前加上 @Ignore 標籤來略過不想執行的 test case,但此錯法也差不多跟註解起來的做法差不多,測完我們想要指定的 test case 後又要一一的把其他 test case 的 @Ignore 標籤拿掉。

其實我們可以不用動到測試的程式碼就可以做到單獨跑一個 test case 的測試,我們只要在 run test case 下的指令中的 -c 參數多帶入要執行的 test case 名稱就可解決此問題,例如我們想單獨執行 test1() 這個測試,只要在 -c 參數修正成 com.autotest.UiAutoTest#test1,就可以單獨跑我們指定的測試案例, 這樣就完全不用再動到測試的程式碼。

參考文章: uiautomator | Android Developers

廣告

發表迴響

Please log in using one of these methods to post your comment:

WordPress.com Logo

您的留言將使用 WordPress.com 帳號。 登出 / 變更 )

Twitter picture

您的留言將使用 Twitter 帳號。 登出 / 變更 )

Facebook照片

您的留言將使用 Facebook 帳號。 登出 / 變更 )

Google+ photo

您的留言將使用 Google+ 帳號。 登出 / 變更 )

連結到 %s