Android gradle应用与Robotium,Jenkins集成测试
1. Android 应用gradle配置如下:
apply plugin: 'com.android.application' android { compileSdkVersion 23 buildToolsVersion "24.0.1" defaultConfig { applicationId "com.example.huichang.myapplication" minSdkVersion 15 targetSdkVersion 23 versionCode 1 versionName "1.0" testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner" } buildTypes { release { minifyEnabled false proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' } } } dependencies { compile fileTree(include: ['*.jar'], dir: 'libs') compile 'com.android.support:appcompat-v7:23.3.0' compile 'com.android.support:design:23.3.0' compile files('libs/robotium-solo-5.6.0.jar') androidTestCompile 'com.android.support:support-annotations:23.3.0' androidTestCompile 'com.android.support.test:runner:0.5' }
请注意:绿色标记的测试相关的配置,我的工程是基于APP源码,基于Robotium的Android UI测试
2.基于Robotium的 测试类的 片段
public class MyApplicationTest1 extends ActivityInstrumentationTestCase2<LoginActivity>{ private Solo solo; public MyApplicationTest1(){ super(LoginActivity.class); } public void setUp(){ solo=new Solo(getInstrumentation(),getActivity()); } public void test1() { solo.clickOnView(solo.getView(R.id.email)); solo.enterText(0,"cheers@163.com"); solo.clickOnView(solo.getView(R.id.password)); solo.enterText(1,"1111111"); solo.clickOnView(solo.getView(R.id.email_sign_in_button)); }} |
4. 相关说明
Android应用的根目录: C:\Users\***\AndroidStudioProjects\MyApplication2
Jenkins workspace 目录: D:\jenkins100_slave\workspace\MyApplication2
android模拟器为:emulator-5554 (Nexus 6P API 23)
5. Jenkins 核心配置 如下:
(1)windows 命令行执行 gradle的测试:
cd C:\Users\***\AndroidStudioProjects\MyApplication2 c: gradlew cAT |
(2)window 命令 讲测试结果拷贝到 Jenkins的workspace(可跳过如果用svn取源码)
说明: 如果大家用svn去取测试工程源码,这一步可以挑过。原因: 本例我没用svn,直接创建本地的Android应用 ,目录是:C:\Users\***\AndroidStudioProjects\MyApplication2 , 所以在测试执行完,需要用windows 命令讲 生成的测试结果从C:\Users\***\AndroidStudioProjects\MyApplication2\app\build\outputs\androidTest-results拷贝到D:\jenkins100_slave\workspace\MyApplication2
xcopy C:\Users\***\AndroidStudioProjects\MyApplication2\app\build\outputs\androidTest-results D:\jenkins100_slave\workspace\MyApplication2 /e |
(3)Jenkins利用JUnit Plugin 插件解析结果
说明: gradlew cAT执行测试结束后,结果放在:MyApplication2\app\build\outputs\androidTest-results\connected名字为:TEST-emulator-5554 - 6.0-app-.xml 其实这个就是JUnit的测试结果,所以用Jenkins的Junit Plugin插件解析结果
(4)执行结果效果