设置 Eclipse

您可以按照以下步骤来使用 Eclipse 设置 Tradefed。

创建一个单独的工作区来开发 Trade Federation,而不要重复使用已经用于 Android 设备开发的工作区。

如果需要,您可以从以下网址下载适用于 Java 开发者的 Eclipse IDE:eclipse.org/downloads

创建项目

  1. 从命令行运行一次 make 命令。这样将构建以下项目所依赖的外部库。
  2. Window > Preferences > Java > Build Path> Classpath Variables 中设置 TRADEFED_ROOT 类路径变量,并使其指向您的 tradefed 源根
  3. Window > Preferences > General > Workspace > Linked Resources 中设置 TRADEFED_ROOT 路径变量,并使其指向您的 tradefed 源根
  4. 使用 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
    
  5. (可选)如果您想查看 ddmlib 源代码,请从未捆绑工具分支(如 /platform/tools/base/tools_r22/ddmlib/src/main/java/com/android/ddmlib/IDevice.java)附加该源代码。

  6. (可选)如果您还想加载 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 中执行以下操作:

  1. 依次转到“Window”>“Preferences”>“Java”>“Code Style”。
  2. 在“Formatter”下,导入 android-formatting.xml 文件。
  3. 在“Organize”>“Imports”下,导入 android.importorder 文件。

移除尾随空格

要强制 Eclipse 移除所有尾随空格,请执行以下操作:

  1. 依次转到“Window”>“Preferences”>“Java”>“Editor”>“Save Actions”。
  2. 然后,依次进入“Additional Actions”>“Configure”>“Code”>“Organizing”标签页 >“Formatter”。
  3. 勾选 Remove Trailing Whitespace
  4. 点击 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 会话:

  1. 使用以下调试标志启动 tradefed.sh:TF_DEBUG=1 tradefed.sh
  2. 等待 JVM 显示以下提示:Listening for transport dt_socket at address: 10088。这意味着 JVM 正在等待调试程序连接到端口 10088
  3. 从主菜单中连接 Eclipse 的远程调试:依次选择“Run”>“Debug Configurations...”。
  4. 在弹出式对话框中,从左侧菜单中选择“Remote Java Application”。
  5. 点击操作栏上的“New launch configuration”图标。
  6. 根据需要为配置命名,并选择 tradefederation 作为项目。
  7. 使用前面提供的地址填写端口。
  8. 切换到“Source”标签页,然后将 tradefederationgoogle-tradefed 项目添加到“Source Lookup Path”。
  9. 点击 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 时的步骤类似):

  1. 使用以下调试标志启动 tradefed.shTF_DEBUG=1 tradefed.sh
  2. 一直等到 JVM 显示以下提示:Listening for transport dt_socket at address: 10088
  3. 连接 jdb。例如,从 croot 运行:

    jdb -attach 10088 \
        -sourcepath tools/tradefederation/core/src:vendor/google_tradefederation/core/src
    
  4. 等待连接并进行调试!如需更多帮助,请运行 man jdb

检查代码覆盖率

  1. 安装 Eclemma 插件
  2. 依次转到“Help”>“Install New Software”,然后将向导指向:http://update.eclemma.org/
  3. 安装后,依次选择“Coverage As”>“JUnit test”选项以执行代码覆盖率运行。