Jenkins运行在无头linux aws上,xvfb获取了connectedAndroidTest浓缩咖啡的错误

时间:2016-08-27 12:14:22

标签: android gradle android-gradle android-espresso

在运行android espresso测试时给jenkins带来错误。 我的服务器是无头linux aws,我使用xvfb虚拟运行android模拟器,并希望运行测试用例。 我已经用命令行

创建了模拟器
android create avd --force -n nexus4-emulator2 -t "Google Inc.:Google APIs:18" --abi default/armeabi-v7a -s "768x1280" --device "Nexus 4" -c 128M

这是创建模拟器,首先它给出了权限错误,但在添加访问权限后,它会得到解决。

现在jenkins上的一些日志就像下面的

  

[android]启动Android模拟器

     

$ / opt / android-sdk-linux // platform-tools / adb -s emulator-5788   wait-for-device shell getprop init.svc.bootanim [android]模拟器   据报道,启动过程正在运行

     

[android]试图解锁仿真器屏幕

     

:Chynge:preBuild UP-TO-DATE

     

安装APK' app-debug.apk' on' nexus4-emulator(AVD) - 4.3.1'对于   Chynge:debug安装在1台设备上。

     

:应用程序:connectedDebugAndroidTest

     

com.app_positive.LoginTest> loginTest [nexus4-emulator(AVD) - 4.3.1]   [31mFAILED [0m android.support.test.espresso.NoMatchingViewException:   层次结构中没有查看匹配的视图:(使用id:com.app:id / btn_login   和文字:是"登录电子邮件"并显示在屏幕上   给用户)

     

:app:connectedDebugAndroidTest FAILED

     
      
  • 出了什么问题:任务执行失败':app:connectedDebugAndroidTest'。      
        

    测试失败了。请参阅以下报告:file:///data/jenkins/workspace/android-ci-tests/client/android/app/build/reports/androidTests/connected/index.html

      
  •   
     

[Gradle] - 启动构建。

     

构建步骤'调用Gradle脚本'将构建结果更改为FAILURE Xvfb   停止完成:失败

2 个答案:

答案 0 :(得分:2)

![Emulator Configuration][see here] ![Gradle task configuration][see here]我没有添加命令来创建模拟器或打开它,但Jenkins提供了android模拟器插件,可以完成创建模拟器,等待打开,启动模拟器等所有事情,我只是必须为它添加配置。 最后我得到了答案,我试图在我的Windows机器上创建模拟器,在Jenkins上配置相同,并在其上安装应用程序,它显示谷歌播放服务更新弹出,这就是原因,跑步者无法在屏幕上找到视图,如弹出窗口不允许运行应用程序,创建模拟器的查询就像

路径到android_sdk_tools>> android create avd --force -n emualator_29 -t android-23 --abi google_apis / armeabi-v7a -s“768x1280”--device“Nexus 4”-c 128M

只需采用新版本23,一些理想的屏幕分辨率,还有一个只有armeabi-v7a在无头机上运行......它对我有用..谢谢你......

答案 1 :(得分:1)

我没有使用Jenkins,但我使用Travis CI来构建我的Github项目。我知道在安装插件后可以使用Travis扩展名读取.yml配置文件。

这是我的Android模拟器配置

 - echo no | android create avd --force -n test -t $ANDROID_TARGET --abi armeabi-v7a --sdcard 200M
  - emulator -avd test -no-audio -no-window &
  - android-wait-for-emulator
  - sleep 10
  - adb shell settings put global window_animation_scale 0 &
  - adb shell settings put global transition_animation_scale 0 &
  - adb shell settings put global animator_duration_scale 0 &
  - adb shell input keyevent 82 &
  

来自:https://github.com/piotrek1543/LocalWeather/blob/master/.travis.yml

正如您在创建模拟器实例(第一行)后所看到的那样,我正在执行android-wait-for-emulator,因为加载虚拟设备可能需要几分钟时间,并且Espresso测试可能会在模拟器进入woulb之前启动闲。还要记得关闭动画并解锁屏幕(最后一行)。

尝试编写类似的脚本。

编辑:当您使用无头服务器取消选中时此选项:

  • 显示模拟器窗口
  

在无头构建机器上运行

     

如果你有自己的奴隶   无头(例如没有图形用户的Linux服务器   接口),你仍然可以运行Android模拟器,即使,通过   默认情况下,模拟器确实需要图形环境。

     

取消勾选你的“显示模拟器窗口”配置选项   工作配置。这相当于使用模拟器   “-no-window”命令行选项。

     

来自:https://wiki.jenkins-ci.org/display/JENKINS/Android+Emulator+Plugin

  • 使用模拟器快照
  

同样,快照支持并不能完全适用于Android 4.0   直到SDK Tools r15。可以创建初始快照,但是   随后从该快照加载将使模拟器崩溃   立即。早期的Android版本不受影响,即您可以   仍然使用Android 3.2及更早版本的快照。升级到SDK   工具r15 +应该解决这个问题。

     

作为解决方法,您还可以取消选中任何“使用模拟器快照”   你看到问题的工作。

     

来自:https://wiki.jenkins-ci.org/display/JENKINS/Android+Emulator+Plugin

该屏幕上描述了相同的解决方案:

  

enter image description here

     

来自http://blog.zuehlke.com/en/configure-your-android-project-on-jenkins/

EDIT2 :阅读这篇文章:https://www.cloudbees.com/blog/continuous-integration-mobile-apps-jenkins-android-builds并注意:

enter image description here

请注意,您可以向模拟器中添加一些其他脚本,尝试在没有第一行的情况下使用我的脚本。

希望它会有所帮助