如何在项目目录中构建Trade Federation并运行自定义测试用例
如何在自有项目中构建并运行Trade Federation测试用例
没问题,我来一步步帮你搞定在/vendor/xyz/packages/apps/MyApp/test目录下使用Trade Federation(TF)运行测试的流程:
1. 先构建你的应用和测试APK
首先得确保主应用APK和测试APK都已编译完成:
- 切换到你的应用根目录:
cd /vendor/xyz/packages/apps/MyApp - 构建主应用APK:
mm - 构建测试APK(如果test模块是独立的):
编译完成后,APK文件会生成在cd test mmout/target/product/<你的设备目标>/data/app/目录下,比如MyApp/MyApp.apk和MyAppTest/MyAppTest.apk。
2. 确认Trade Federation环境可用
既然你已经能运行TF核心测试,环境应该已经就绪,但可以验证一下TF命令是否在PATH中:
which tradefed
如果返回路径(通常是out/host/linux-x86/bin/tradefed),说明没问题;如果没找到,就用绝对路径调用。
3. 运行测试的两种方式
方式一:直接用命令行运行单个/指定测试
如果只想快速运行某个测试类或方法,可以用singleCommand模式:
tradefed run singleCommand \ --command "instrument \ -w \ -p /out/target/product/<你的设备目标>/data/app/MyAppTest/MyAppTest.apk \ -I /out/target/product/<你的设备目标>/data/app/MyApp/MyApp.apk \ -c com.xyz.myapp.test.YourTestClass \ -e debug false"
参数说明:
-w:等待测试完成-p:指定测试APK的路径-I:指定主应用APK的路径(如果测试依赖主应用)-c:指定要运行的测试类(可省略,会运行所有测试)-e debug false:关闭调试模式(按需调整)
方式二:使用TF配置文件批量运行测试
如果需要自定义测试参数、批量运行测试或复用配置,推荐编写TF配置文件:
- 在
/vendor/xyz/packages/apps/MyApp/test目录下创建my_app_tf_config.xml,示例内容:
<configuration description="MyApp Trade Federation Test Config"> <test class="com.android.tradefed.testtype.InstrumentationTest"> <option name="apk" value="/out/target/product/<你的设备目标>/data/app/MyAppTest/MyAppTest.apk"/> <option name="instrumentation-apk" value="/out/target/product/<你的设备目标>/data/app/MyApp/MyApp.apk"/> <option name="package" value="com.xyz.myapp.test"/> <!-- 可选:指定测试类或方法 --> <!-- <option name="class" value="com.xyz.myapp.test.YourTestClass"/> --> </test> </configuration>
- 用配置文件运行测试:
tradefed run commandAndExit --config /vendor/xyz/packages/apps/MyApp/test/my_app_tf_config.xml
4. 额外注意事项
- 确保你已经通过
lunch命令选择了正确的设备目标(比如lunch aosp_x86_64-eng),否则编译路径可能不对。 - 检查设备连接状态:
adb devices,确保有可用的测试设备或模拟器。 - 如果是本地单元测试(非Instrumentation),Trade Federation通常不是必需的,可以直接用
./gradlew test(如果项目用Gradle),但如果必须用TF,需要调整测试类型配置。
内容的提问来源于stack exchange,提问作者Basim Sherif
相关产品推荐
相关产品推荐

