使用 Eclipse 建立 android test project

Step 1. 開啟 Eclipse -> File -> new -> other -> 輸入 android test project -> next
Step 2.輸入 測試專案名稱

Step 2.a 選擇 finish -> Step 5.

Step 2.b 選擇 next -> Step 3.

Step 3.選擇被測專案

Step 3.a 選擇 next -> Step 4.

Step 3.b 選擇 finish -> Step 5.

Step 4.選擇 target sdk version
Step 5.建立測試專案完成!

使用 Command line 建立 android test project

Step 1. 開啟終端機並使用 android-sdk/tools/android 建立測試專案,建立測試專案的指令如下

android create test-project -p 測試專案路徑 -m 被測專案路徑
-p 代表測試專案路徑
-m 代表被測專案路徑

Note :

  1. 這2個參數都是必須的,因此使用 command line 建立測試專案必須存在被測專案才行。
  2. 被測專案路徑會由被測專案路徑中是否存在 AndroidManifest.xml 來判斷,若被測專案不存在 AndroidManifest.xml 會出現以下錯誤訊息
    Error: No AndroidManifest.xml file found in the main project directory:
  3. 若直接輸入 android 出現 command not found 的錯誤,請參考這篇(將相關指令加入環境變數

以下為範例:

首先建立被測專案 TargetTestProject
可以使用 eclipse 也可以使用 command line,以下使用指令
Step 1. 建立TargetTestProject資料夾,並移動該資料夾中

mkdir TargetTestProject
cd TargetTestProject

Step 2.建立 android project

android create project -p ./ -n TargetTestProject -k com.example.targettestproject -a MainActivity -t android-15
-p path to project directory
-n name of application
-k name of package
-a name of helloworld activity
-t android version

完成後會自動產生一個 MainActivity.java 位置在
TargetTestProject/src/com/example/targettestproject/MainActivity 可以啟動看看是否正常,在已連接裝置或是已啟動 AVD 的狀況下輸入

adb shell am start -n com.example.targettestproject/com.example.targettestproject.MainActivity

應該就可看到該app已啟動完成顯示在裝置上。
再建立測試專案 TestProject

cd ../
mkdir TestProject
cd TestProject
android create test-project -p ./ -m ../TargetTestProject

以上指令除了建立測試專案之外還會幫我們建立一個 test case 為 MainActivityTest.java
該名稱會對應於被測專案的Activity字尾加上Test
位置在 TargetTestProject/src/com/example/targettestproject/MainActivityTest.java
內容如下

package com.example.targettestproject;
import android.test.ActivityInstrumentationTestCase2;
/**
 * This is a simple framework for a test of an Application.  See
 * {@link android.test.ApplicationTestCase ApplicationTestCase} for more information on
 * how to write and extend Application tests.
 * <p/>
 * To run this test, you can type:
 * adb shell am instrument -w \
 * -e class com.example.targettestproject.MainActivityTest \
 * com.example.targettestproject.tests/android.test.InstrumentationTestRunner
 */
public class MainActivityTest extends ActivityInstrumentationTestCase2<MainActivity> {
    public MainActivityTest() {
        super("com.example.targettestproject", MainActivity.class);
    }
}

現在就可以試著啟動測試程式看看。
你可以使用註釋中提到的方式啟動,但是缺點是修改 source code 之後並不會重新編譯以及安裝,如下

 * adb shell am instrument -w \
 * -e class com.example.targettestproject.MainActivityTest \
 * com.example.targettestproject.tests/android.test.InstrumentationTestRunner
 */

不如使用 ant 來的方便,指令比較短也會自動完成需要的工作。

ant uninstall clean debug install test

啟動並完成測試之後,可以看到以下輸出

...
test:
     [echo] Running tests ...
     [exec]
     [exec] Test results for InstrumentationTestRunner=
     [exec] Time: 0.0
     [exec]
     [exec] OK (0 tests)
     [exec]
     [exec]
BUILD SUCCESSFUL
Total time: 16 seconds

成功執行測試,沒有任何測試案例。
下一篇 建立測試案例以及測試 android activity 的模板