请按照以下步骤使用 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 中执行此操作:
- 转到“窗口”>“首选项”>“Java”>“代码样式” 。
- 在Formatter下,导入文件
android-formatting.xml
。 - 在组织 > 导入下,导入文件
android.importorder
。
删除尾随空格
要强制 Eclipse 删除所有尾随空格:
- 转到Window > Preferences -> Java -> Editor -> Save Actions 。
- 然后“其他操作”->“配置”->“代码”>“组织”选项卡->“格式化程序” 。
- 选中删除尾随空白。
- 单击应用并关闭。
检查代码风格
提交更改列表时,将运行自动预上传挂钩来检查您的代码格式: google-java-format
这有助于将您的代码格式化为通用标准。
调试Eclipse
如果您想通过 Eclipse 中的调试器运行 TF 代码,建议您首先为相关代码创建一个单元测试,因为这将是行使该功能的最简单、最快的方法。
要调试 TF 单元测试,只需右键单击它并选择Debug As > JUnit test 。
要调试 TF 功能测试,请按照上一节中运行功能测试的说明进行操作,但使用“运行”>“调试配置”菜单。
要调试 TF 程序本身,在运行任何配置时,请按照上一节中运行功能测试的说明进行操作,但为您希望在步骤 4 中运行的配置提供命令行参数。因此,要调试“仪器”配置,转到Run > Debug 配置菜单,并将 Eclipse 调试配置中的Arguments选项卡设置为-- package <package to run> instrument
。
使用 Eclipse 进行远程调试
请按照以下步骤远程调试从tradefed.sh
命令行启动的 tradefed 会话:
- 使用调试标志启动 tradefed.sh:TF_DEBUG=1
TF_DEBUG=1 tradefed.sh
- 等待,直到您看到来自 JVM 的提示:
Listening for transport dt_socket at address: 10088
这意味着 JVM 正在等待调试器连接到端口10088
。 - 从主菜单附加 Eclipse 的远程调试:选择Run > Debug Configurations...。
- 在弹出的对话框中,从左侧菜单中选择“远程 Java 应用程序” 。
- 单击操作栏上的新启动配置图标。
- 根据需要命名配置并选择tradefederation作为项目。
- 使用之前提供的地址填充端口。
- 切换到Source选项卡并将项目tradefederation和google-tradefed添加到Source Lookup Path 。
- 单击“调试”启动调试会话。
调试器附加到侦听 JVM 进程,运行tradefed.sh
的终端显示tf>
提示符。
要在调试模式下单步执行代码,请在 Eclipse 中设置断点并在终端中调用 Tradefed 命令(即run <test>
)。要在 TF 启动期间调试任何内容,可以先设置断点,然后附加 Eclipse 调试器。
提示:要使用备用端口,请将TF_DEBUG_PORT=nnn
添加到上述步骤 1 中的命令中。如果您有神秘的挂起错误需要调查,您甚至可以在生产环境中使用它:将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 插件。
- 转至帮助 > 安装新软件并将向导指向:http://update.eclemma.org/
- 安装后,选择Coverage As > JUnit测试选项来执行代码覆盖率运行。