【发布时间】:2023-03-16 11:55:01
【问题描述】:
我创建了一些 espresso UI 测试。测试在本地运行良好(模拟器和真实设备)。但是当我试图在 CircleCI 上运行 UI 测试时。我收到此错误日志
任务:app:compileFossDebugAndroidTestKotlin 使用 Kotlin compile daemon 编译不成功 java.rmi.UnmarshalException:解组返回标头时出错;嵌套异常是:
编译后无法清除jar缓存,可能守护进程已经关闭:java.rmi.ConnectException: Connection denied to host: 127.0.0.1;嵌套异常是: java.net.ConnectException:连接被拒绝(连接被拒绝) 无法连接到 kotlin 守护程序。使用后备策略。
拿起JAVA_TOOL_OPTIONS:-Xms512m
任务:app:compileFossDebugAndroidTestKotlin FAILED
FAILURE:构建失败并出现异常。
- 出了什么问题: 任务 ':app:compileFossDebugAndroidTestKotlin' 执行失败。
有关错误日志的更多详细信息,请参阅here
这是我的带有 run-ui-tests 作业的 circleci 的 config.yml 文件
run-ui-tests:
docker:
- image: circleci/android@sha256:5cdc8626cc6f13efe5ed982cdcdb432b0472f8740fed8743a6461e025ad6cdfc
environment:
JVM_OPTS: -Xmx2048m
GRADLE_OPTS: -Xmx1536m -XX:+HeapDumpOnOutOfMemoryError -Dorg.gradle.caching=true -Dorg.gradle.configureondemand=true -Dkotlin.compiler.execution.strategy=in-process -Dkotlin.incremental=false
steps:
- checkout
- run:
name: ANDROID_HOME
command: echo "sdk.dir="$ANDROID_HOME > local.properties
- run:
name: restore files from ENV
command: |
echo $ROCKET_JKS_BASE64 | base64 --decode > Rocket.jks
echo $ROCKET_PLAY_JSON | base64 --decode > app/rocket-chat.json
- run:
name: checkout Rocket.Chat.Kotlin.SDK
command: git clone https://github.com/RocketChat/Rocket.Chat.Kotlin.SDK.git ../Rocket.Chat.Kotlin.SDK
- restore_cache:
key: kotlin-sdk-{{ .Revision }}
- restore_cache:
key: jars-{{ checksum "build.gradle" }}-{{ checksum "app/build.gradle" }}
- run:
name: Accept licenses
command: yes | sdkmanager --licenses || true
- run:
name: Download Dependencies
command: ./gradlew androidDependencies
- save_cache:
paths:
- ~/.gradle
key: jars-{{ checksum "build.gradle" }}-{{ checksum "app/build.gradle" }}
- run:
name: Setup emulator
command: sdkmanager "system-images;android-22;default;armeabi-v7a" && echo "no" | avdmanager create avd -n test -k "system-images;android-22;default;armeabi-v7a"
- run:
name: Launch emulator
command: export LD_LIBRARY_PATH=${ANDROID_HOME}/emulator/lib64:${ANDROID_HOME}/emulator/lib64/qt/lib && emulator64-arm -avd test -noaudio -no-boot-anim -no-window -accel auto -verbose
background: true
- run:
name: Wait emulator
command: |
# wait for it to have booted
circle-android wait-for-boot
# unlock the emulator screen
sleep 30
adb shell input keyevent 82
- run:
name: Run EspressoTests
command: ./gradlew connectedAndroidTest
- store_artifacts:
path: app/build/reports
destination: reports
- store_test_results:
path: app/build/test-results
gradle.properties
android.enableJetifier=true
android.useAndroidX=true
org.gradle.jvmargs=-Xmx1536m
其他配置
compileSdk version : 28
targetSdk version : 28
kotlin version : '1.3.31'
该项目有 2 种风格:foss 和 play 和 2 种构建类型:调试和发布
我已经尝试了所有可能的解决方案,但没有一个有效。任何帮助将不胜感激。谢谢
【问题讨论】:
标签: android kotlin android-espresso circleci circleci-2.0