您可以按照以下步骤来使用 Eclipse 设置 Tradefed。
创建一个单独的工作区来开发 Trade Federation,而不要重复使用已经用于 Android 设备开发的工作区。
如果需要,您可以从以下网址下载适用于 Java 开发者的 Eclipse IDE:eclipse.org/downloads
创建项目
- 从命令行运行一次 make 命令。这样将构建以下项目所依赖的外部库。
- 在
Window > Preferences > Java > Build Path> Classpath Variables
中设置 TRADEFED_ROOT 类路径变量,并使其指向您的 tradefed 源根 - 在
Window > Preferences > General > Workspace > Linked Resources
中设置 TRADEFED_ROOT 路径变量,并使其指向您的 tradefed 源根 使用
File > Import...-> General > Existing Projects into workspace"
向导引入以下路径下的这些开放源代码 Java 项目:prebuilts/misc/common/ddmlib\* tools/loganalysis tools/loganalysis/tests tools/tradefederation/core tools/tradefederation/core/tests tools/tradefederation/contrib tools/tradefederation/core/remote platform_testing/libraries/health/runners/longevity/host platform_testing/libraries/annotations platform_testing/libraries/health/composers/host
(可选)如果您想查看
ddmlib
源代码,请从未捆绑工具分支(如 /platform/tools/base/tools_r22/ddmlib/src/main/java/com/android/ddmlib/IDevice.java)附加该源代码。(可选)如果您还想加载 CTS 自动化测试框架项目,请导入:
test/suite_harness/common/util test/suite_harness/common/host-side/util test/suite_harness/common/host-side/tradefed
自动设置格式
注意:必备文件位于完整平台源代码树中的 development/ide/eclipse
内。因此,您需要签出一个平台分支(如 main
)来获取这些文件:/development/main/ide/eclipse/
您可以使用 Eclipse 中的首选项文件自动将格式设置标准设为 Android 样式指南。为此,请在 Studio 中执行以下操作:
- 依次转到“Window”>“Preferences”>“Java”>“Code Style”。
- 在“Formatter”下,导入
android-formatting.xml
文件。 - 在“Organize”>“Imports”下,导入
android.importorder
文件。
移除尾随空格
要强制 Eclipse 移除所有尾随空格,请执行以下操作:
- 依次转到“Window”>“Preferences”>“Java”>“Editor”>“Save Actions”。
- 然后,依次进入“Additional Actions”>“Configure”>“Code”>“Organizing”标签页 >“Formatter”。
- 勾选 Remove Trailing Whitespace。
- 点击 Apply and Close。
检查代码样式
提交更改列表时,将运行自动预上传钩子来检查您的代码格式:google-java-format
这有助于将您的代码设置为符合通用标准的格式。
Eclipse 调试
如果您要通过 Eclipse 中的调试程序运行 TF 代码,建议您先为相关代码创建单元测试,因为这将是运用相关功能的最简单、最快捷的方式。
要调试 TF 单元测试,只需右键点击该单元测试,然后依次选择 Debug As > JUnit test。
要调试 TF 功能测试,请按照上一部分中关于运行功能测试的说明操作,但使用“Run”>“Debug configurations”菜单。
如需调试 TF 程序本身,在运行任何配置时,请按照上一部分中关于运行功能测试的说明操作,但在第 4 步中提供与您希望运行的配置相对应的命令行参数。因此,如需调试“instrument”配置,请依次转到“Run”>“Debug configurations”菜单,然后将 Eclipse 调试配置中的“Arguments”标签页设置为 -- package <package to run> instrument
。
使用 Eclipse 进行远程调试
您可以按照以下步骤来远程调试从 tradefed.sh
命令行启动的 tradefed 会话:
- 使用以下调试标志启动 tradefed.sh:
TF_DEBUG=1 tradefed.sh
- 等待 JVM 显示以下提示:
Listening for transport dt_socket at address: 10088
。这意味着 JVM 正在等待调试程序连接到端口10088
。 - 从主菜单中连接 Eclipse 的远程调试:依次选择“Run”>“Debug Configurations...”。
- 在弹出式对话框中,从左侧菜单中选择“Remote Java Application”。
- 点击操作栏上的“New launch configuration”图标。
- 根据需要为配置命名,并选择 tradefederation 作为项目。
- 使用前面提供的地址填写端口。
- 切换到“Source”标签页,然后将 tradefederation 和 google-tradefed 项目添加到“Source Lookup Path”。
- 点击 Debug 以启动调试会话。
调试程序会连接到正在监听的 JVM 进程,运行 tradefed.sh
的终端将显示 tf>
提示符。
如需在调试模式下逐句调试代码,请在 Eclipse 中设置一个断点,并在终端中调用 Tradefed 命令(即 run <test>
)。如需在 TF 启动期间调试任何内容,可以先设置断点,然后再连接 Eclipse 调试程序。
提示:如需使用其他端口,请在上述第 1 步的命令中添加 TF_DEBUG_PORT=nnn
。如果有难解的挂起错误需要调查,也可以在生产环境中使用此方法:在 tradefed.sh
中将 suspend=y
更改为 suspend=n
,并使用调试标志启动。JVM 不会等待调试程序连接,但只要进程仍在运行,您就可以随时执行此操作。
使用 JDB 进行远程调试
如需使用 Java 调试程序 JDB,请按照以下步骤操作(与使用 Eclipse 时的步骤类似):
- 使用以下调试标志启动
tradefed.sh
:TF_DEBUG=1 tradefed.sh
- 一直等到 JVM 显示以下提示:
Listening for transport dt_socket at address: 10088
。 连接
jdb
。例如,从 croot 运行:jdb -attach 10088 \ -sourcepath tools/tradefederation/core/src:vendor/google_tradefederation/core/src
等待连接并进行调试!如需更多帮助,请运行
man jdb
。
检查代码覆盖率
- 安装 Eclemma 插件。
- 依次转到“Help”>“Install New Software”,然后将向导指向:http://update.eclemma.org/
- 安装后,依次选择“Coverage As”>“JUnit test”选项以执行代码覆盖率运行。