android – 如何运行Travis-CI和Espresso Test

android – 如何运行Travis-CI和Espresso Test,第1张

概述我目前设置了Travis-CI,以便在我的 Android设备的每个版本上运行gradle ConnectedCheck任务并执行我的所有单元测试.我已经能够成功地设置它.我现在正在尝试用Espresso构建一些功能测试,我目前遇到很多困难,设置Travis的方式使我的espresso测试可以与Travis的模拟器交互.我如何设置Travis以使其模拟器的工作方式与我在本地工作站上使用的模拟器完全 我目前设置了Travis-CI,以便在我的 Android设备的每个版本上运行gradle ConnectedCheck任务并执行我的所有单元测试.我已经能够成功地设置它.我现在正在尝试用Espresso构建一些功能测试,我目前遇到很多困难,设置Travis的方式使我的espresso测试可以与Travis的模拟器交互.我如何设置Travis以使其模拟器的工作方式与我在本地工作站上使用的模拟器完全相同?

这是我用来构建模拟器的.travis.yml的一部分.

language: androIDjdk: oraclejdk7env:  matrix:    - ANDROID_TARGET=androID-19  ANDROID_ABI=armeabi-v7aandroID:  components:    - build-tools-20.0.0    - build-tools-19.1.0before_script:  # Create and start emulator  - echo no | androID create avd --force -n test -t $ANDROID_TARGET --abi $ANDROID_ABI  - emulator -avd test -no-skin -no-audio -no-window &  - androID-wait-for-emulator  - adb shell input keyevent 82 &
解决方法 2015年9月7日更新

令人难以置信的是令人沮丧,但我在AndroID支持库中获得Espresso以在Travis CI上成功运行.这是对我有用的确切配置.特定的sdk和库版本号很重要,所以不要更改它们,否则会遇到问题.支持注释的解决策略也是必要的,所以不要删除它.由于Travis CI的AndroID支持仍处于测试阶段,因此这个答案可能已经过时了.查看Travis CI网站了解更新here.

.travis.yml

language: androIDjdk: openjdk7androID:  components:    - build-tools-22.0.1    - androID-20    - extra    - addon    - sys-img-armeabi-v7a-androID-19before_script:  - echo no | androID create avd --force -n test -t androID-19 --abi armeabi-v7a  - emulator -avd test -no-skin -no-audio -no-window &  - androID-wait-for-emulator  - adb shell input keyevent 82 &script:    - ./gradlew connectedAndroIDTest

的build.gradle

apply plugin: 'androID-sdk-manager'apply plugin: 'com.androID.application'buildscript {    repositorIEs {        mavenCentral()    }    dependencIEs {        classpath 'com.androID.tools.build:gradle:1.3.0'        classpath 'com.jakewharton.sdkmanager:gradle-plugin:0.12.+'    }}androID {    compileSdkVersion 20    buildToolsversion "22.0.1"    defaultConfig {        minSdkVersion 11        targetSdkVersion 20        testApplicationID "com.example.app.test"        testInstrumentationRunner "androID.support.test.runner.AndroIDJUnitRunner"    }    buildTypes {        release {            MinifyEnabled false            proguardfiles getDefaultProguardfile('proguard-androID.txt'),'proguard-rules.txt'        }    }    packagingOptions {        exclude 'liCENSE.txt'        exclude 'meta-inf/liCENSE'        exclude 'meta-inf/NOTICE'    }    lintoptions {        abortOnError false    }}dependencIEs {    compile 'com.actionbarsherlock:actionbarsherlock:4.4.0@aar'    compile 'com.androID.support:support-v4:20.+'    compile 'joda-time:joda-time:2.3'    compile 'com.squareup.retrofit:retrofit:1.4.1'    compile 'com.squareup.retrofit:retrofit-converters:1.9.0'    compile 'com.squareup.retrofit:retrofit-mock:1.4.0'    compile 'com.fasterxml.jackson.core:jackson-core:2.3.1'    compile 'com.fasterxml.jackson.core:jackson-annotations:2.3.0'    compile 'com.fasterxml.jackson.core:jackson-databind:2.3.1'    compile 'com.Google.guava:guava:16.0'    androIDTestCompile 'com.androID.support:support-annotations:20.+'    androIDTestCompile 'com.androID.support.test.espresso:espresso-core:2.2'    androIDTestCompile 'com.androID.support.test:runner:0.3'    androIDTestCompile 'com.squareup:fest-androID:1.0.7'}configurations.all {    resolutionStrategy {        // fail eagerly on version conflict (includes transitive dependencIEs)        // e.g. multiple different versions of the same dependency (group and name are equal)        failOnVersionConflict()        // force certain versions of dependencIEs (including transitive)        //  *append new forced modules:        force 'com.androID.support:support-annotations:20.+','com.squareup.retrofit:retrofit:1.4.1'        //  *replace existing forced modules with new ones:        forcedModules = ['com.androID.support:support-annotations:20.+','com.squareup.retrofit:retrofit:1.4.1']        // cache dynamic versions for 10 minutes        cacheDynamicVersionsFor 10*60,'seconds'        // don't cache changing modules at all        cacheChangingModulesFor 0,'seconds'    }}

如果您收到这样的error:

PerformException: Error performing 'single click' on vIEw

添加此代码进行测试:

closeSoftKeyboard();Thread.sleep(1000);

public voID testThatSuccessDialogIsShownWithValIDCardinput() throws Exception {    onVIEw(withID(R.ID.card_number))            .perform(typeText("4242424242424242"));    closeSoftKeyboard();    Thread.sleep(1000);    onVIEw(withID(R.ID.card_exp_month))            .perform(typeText("01"));    onVIEw(withID(R.ID.card_exp_year))            .perform(typeText("20"));    onVIEw(withID(R.ID.card_cvc_code))            .perform(typeText("313"));    closeSoftKeyboard();    Thread.sleep(1000);    onVIEw(withText("submit"))            .perform(click());    onVIEw(withText("Success!"))            .check(matches(isdisplayed()));    onVIEw(withText("OK"))            .perform(click());    onVIEw(withText("OK"))            .check(doesNotExist());}

工作项目

https://travis-ci.org/Kurry/Venmo-Android-Coding-Challenge

https://github.com/Kurry/Venmo-Android-Coding-Challenge

总结

以上是内存溢出为你收集整理的android – 如何运行Travis-CI和Espresso Test全部内容,希望文章能够帮你解决android – 如何运行Travis-CI和Espresso Test所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://www.54852.com/web/1138477.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-05-30
下一篇2022-05-30

发表评论

登录后才能评论

评论列表(0条)

    保存