本部分介绍如何在对项目做出更改后运行 Trade Federation 测试。这其中包括:
- 在什么位置添加新的单元测试类
- 在 Eclipse 中以及 Eclipse IDE 外部运行单元测试
- 运行功能测试
- 在本地运行一些 TF 提交前验证
添加单元测试
在 Android 开源项目 (AOSP) 中,您可以在以下位置添加单元测试类:tools/tradefederation/core/tests/src/com/android/tradefed/UnitTests.java
重要提示:将新的单元测试类添加到这些位置将导致它们在提交前自动运行,而无需额外设置。
运行单元测试
Trade Federation 的所有 AOSP 单元测试和功能测试都位于 tools/tradefederation/core/tests
项目中。
在 Eclipse 中,要运行单个单元测试,只需右键点击该测试,然后依次选择 Run As> JUnit。要运行所有单元测试,请运行 com.android.tradefed.UnitTests 套件。
您也可以在编译之后从 Tradefed 源代码树中的命令行启动单元测试,如下所示:tools/tradefederation/core/tests/run_tradefed_tests.sh
单元测试可以单独执行,但功能测试应使用 Trade Federation 本身执行;它们需要 Android 设备。所有功能测试都应遵循命名惯例 *FuncTest
。
运行功能测试
要从 Eclipse 中运行功能测试,请执行以下操作:
- 确保一个设备已连接到主机,并且
adb
和(如有必要)fastboot
在 Eclipse 的 PATH 中。要达到此目的,最简单的方法是从具有正确 PATH 的 shell 设置启动 Eclipse。 - 创建一个 Java 应用。通过依次点击 Run > Run configurations 运行配置。
- 将项目设为
google-tradefederation-tests
,并将主类设为com.android.tradefed.command.CommandRunner
。 - 在“Arguments”标签中提供以下命令行参数:
host --class <full path of test class to run>
- 点击 Run。
要在 Eclipse 外部运行功能测试,请执行以下操作:
- 编译 Trade Federation。
- 将一个 Android 设备连接到主机。
- 运行
tools/tradefederation/core/tests/run_tradefed_func_tests.sh
- (可选)通过附加显示在
adb devices
输出中的--serial <serial no>
来选择相应设备。
针对本地更改运行 TF 提交前测试
如果您想以与 TF 提交前测试相似的方式运行,请使用以下命令:
tools/tradefederation/core/tests/run_tradefed_aosp_presubmit.sh
此命令会针对本地编译的 TF 触发所有 TF 提交前测试,以帮助您验证相应更改未破坏任何测试。
TF 提交前测试是上述单元测试的超集,但运行速度偏慢。因此,建议在开发期间运行单元测试以更快速地进行验证,然后在上传 CL 之前运行提交前测试。