零基础如何在Azure Pipeline每日运行JetPack Compose UI测试?
Azure Pipeline 夜间运行JetPack Compose UI测试的任务配置步骤
以下是搭建每日夜间运行Compose UI测试Pipeline所需的核心任务,按执行顺序排列:
1. 配置代理环境
- 选择
Ubuntu Latest作为代理(推荐,Android环境镜像下载更快),确保代理支持Android开发相关组件的安装。
2. 拉取项目代码
- 添加Git任务:配置你的代码仓库URL、目标分支,确保Pipeline能拉取最新的Kotlin项目代码。
3. 配置Android SDK与依赖
- 添加Android SDK任务:勾选项目对应的SDK编译版本(比如Android 33)、匹配版本的Build Tools,以及
Android Emulator组件。 - 添加Bash任务,预加载项目依赖:
./gradlew dependencies --no-build-cache
4. 启动Android模拟器(无头模式)
如果没有真机资源,用模拟器是自动化测试的首选:
- 添加Bash任务创建模拟器镜像:
avdmanager create avd -n nightly_test_emulator -k "system-images;android-33;google_apis;x86_64" --force - 继续在同一个Bash任务中启动模拟器并等待系统就绪:
注:emulator -avd nightly_test_emulator -no-window -no-audio -no-boot-anim & adb wait-for-device shell 'while [[ -z $(getprop sys.boot_completed) ]]; do sleep 1; done;'-no-window是无头代理环境必须的参数,避免图形界面无法渲染。
5. 执行Compose UI测试
- 添加Gradle任务,配置测试命令:
如果需要指定运行单个测试类,可追加参数:./gradlew connectedAndroidTest
该任务会自动连接模拟器/真机,执行所有Instrumented UI测试(包括你的Compose测试)。./gradlew connectedAndroidTest -Pandroid.testInstrumentationRunnerArguments.class=com.yourpackage.YourComposeTestClass
6. 收集并展示测试结果
- 添加Publish Test Results任务:选择JUnit格式,指定测试结果文件路径为
**/build/outputs/androidTest-results/connected/*.xml,这样Pipeline会自动统计通过率、展示失败用例的详情。
7. 配置夜间定时触发
进入Pipeline的Triggers设置,添加Scheduled触发器:
- 设置每日运行时间(比如凌晨2点),选择对应时区;
- 勾选"即使没有代码变更也运行",确保每日夜间自动执行测试。
额外注意事项
- 若使用真机测试,需在Azure DevOps中配置Device Farm,添加绑定的真机设备,并在Gradle任务中指定真机的连接参数;
- 确保项目
build.gradle中已正确配置Compose测试依赖:
同时启用Compose构建特性:androidTestImplementation "androidx.compose.ui:ui-test-junit4" debugImplementation "androidx.compose.ui:ui-test-manifest"buildFeatures { compose true } composeOptions { kotlinCompilerExtensionVersion "你的Compose版本号" } - 若遇到adb连接不稳定,可在启动模拟器前添加
adb kill-server && adb start-server命令重置连接。
内容的提问来源于stack exchange,提问作者vasut alexandru
相关产品推荐
相关产品推荐

