You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过命令行构建库模块APK并运行其测试用例?

解决Library Module测试用例无法找到的问题

你遇到的核心问题是:试图通过主APP的APK运行库模块的测试用例,但库的instrumented测试需要单独构建和安装测试APK,并且使用正确的instrumentation组件信息。日志里的Unable to find instrumentation info错误,就是因为你指定的组件没有被正确安装到设备上。

错误原因拆解

你之前的脚本安装的是主APP(IrisReferenceClient)的APK,但Network-sdk库的测试用例属于独立的androidTest组件,它需要对应的测试APK和匹配的测试运行器配置,和主APP的APK没有直接关联。

修正后的自动化脚本

下面是针对Network-sdk库模块测试的正确执行步骤:

# 1. 清理项目,避免缓存干扰
./gradlew clean

# 2. 构建并安装Network-sdk的debug版本及对应的测试APK
# 这个Gradle任务会自动处理测试所需的宿主APP(Android默认提供)
./gradlew :Network-sdk:installDebugAndroidTest

# 3. 运行指定的测试用例
# 注意替换以下内容:
#   - 第一个是测试类的完整包名+类名
#   - 第二个是测试包名 + 测试运行器全类名(和build.gradle配置一致)
adb shell am instrument -w -r -e debug false -e class 'com.your.network.sdk.ConnectivityTestSenderTest' com.your.network.sdk.test/androidx.test.runner.AndroidJUnitRunner

关键配置确认

确保Network-sdk模块的build.gradle包含正确的测试配置:

android {
    defaultConfig {
        // 测试运行器,推荐使用androidx版本;若仍用support库,替换为android.support.test.runner.AndroidJUnitRunner
        testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
        // 可选:自定义测试包名(默认是原包名加.test)
        // testApplicationId "com.your.network.sdk.test"
    }
}

dependencies {
    // 添加instrumented测试依赖
    androidTestImplementation 'androidx.test.ext:junit:1.1.5'
    androidTestImplementation 'androidx.test.espresso:espresso-core:3.5.1'
    // 若使用support库,替换为对应依赖
    // androidTestImplementation 'com.android.support.test:runner:1.0.2'
    // androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.2'
}

验证与排查技巧

  1. 确认测试类位置:ConnectivityTestSenderTest必须放在Network-sdk模块的src/androidTest/java/目录下(src/test/java/是本地单元测试,不需要instrument)。
  2. 查看已安装的instrumentation:运行adb shell pm list instrumentation,找到对应Network-sdk测试的条目,比如:
    instrumentation:com.your.network.sdk.test/androidx.test.runner.AndroidJUnitRunner (target=com.your.network.sdk)
    
    这条内容就是你需要在am instrument命令中使用的组件名。
  3. 检查测试APK信息:若不确定包名,可执行aapt dump badging Network-sdk/build/outputs/apk/androidTest/debug/Network-sdk-debug-androidTest.apk(替换为你的测试APK路径),找到instrumentation相关行确认配置。

内容的提问来源于stack exchange,提问作者M.A.Murali

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.28 09:44:26