AndroidJUnitRunner
- 能夠run JUnit3 and JUnit4的 test
- 能夠做test filtering SmallTest MediumTest LargeTest
- Activity /Application Life cycle Monitoring
今天會介紹如何使用AndroidJUnitRunner寫test case
defaultConfig {applicationId "com.androidtestcase"
minSdkVersion 14
targetSdkVersion 21
versionCode 1
versionName "1.0"
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
}
android {
packagingOptions {
exclude 'LICENSE.txt'
}
}
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
compile 'com.android.support:appcompat-v7:22.0.0'
androidTestCompile 'com.android.support.test:runner:0.2'
androidTestCompile 'com.android.support.test:rules:0.2'
androidTestCompile 'com.android.support.test.espresso:espresso-core:2.1'
}
主要要加的地方有 packagingOptions那段
還有androidTestCompile那些code
接著就寫一個簡單的test吧,如下
@SmallTest
public class testMyMethod {
@Test
public void test(){
MyMethod m = new MyMethod();
Assert.assertEquals(m.getData(),"data1");
}
}
你只需這樣寫就能夠寫出一個簡單的測試
其中 SmallTest代表test 的size ,目前有分 small / medium/ large
想要測試smallTest 你可以先使用以下cmd
adb shell pm list instrumentation
他會列出test list 如下
instrumentation:com.androidtestcase.test/android.support.test.runner.AndroidJUnitRunner (target=com.androidtestcase)
例如我的package name為 com.androidtestcase 則我必須下cmd
adb shell am instrument -w -e size small com.androidtestcase.test/android.support.test.runner.AndroidJUnitRunner
這樣就只會測small的test case
可以依照需求,測試我想測的case
接著下面介紹了如何取得test case 的report
在console下command
./gradlew connectedAndroidTest
就可以得到test 的xml格式report
在console下command
./gradlew test
就可以得到html格式的report
xml格式的report比較適合在CI裡面使用,html格式的比較適合個人觀看用
目前我使用新的AndroidJUnitRunner純粹是為了可以filter test size
當我只想做快速的unit test 的時候就不再需要重新跑一次所有的 ui test 囉!!
沒有留言:
張貼留言