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

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

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

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

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

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
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,所需執行的指令如下所示:

1
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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值