设置 Eclipse

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

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

如果需要,您可以从以下位置下载适用于 Java 开发人员的 Eclipse IDEeclipse.org/downloads

创建项目

  1. 从命令行运行一次。这将构建由以下项目依赖的外部库。
  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中。所以你需要检查一个平台分支,比如master来获取这些文件: /development/master/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 tab -> Formatter
  3. 检查删除尾随空格
  4. 单击应用并关闭

检查代码样式

提交更改列表时,将运行自动预上传挂钩以检查您的代码格式: google-java-format

这有助于将您的代码格式化为通用标准。

调试 Eclipse

如果您想通过 Eclipse 中的调试器运行 TF 代码,建议您首先为有问题的代码创建一个单元测试,因为这将是最简单和最快的方法来练习功能。

要调试 TF 单元测试,只需右键单击它并选择Debug As > JUnit test

要调试 TF 功能测试,请按照上一节中的说明运行功能测试,但使用运行 > 调试配置菜单。

要调试 TF 程序本身,在运行任何配置时,请按照上一节中的说明运行功能测试,但为您希望在步骤 4 中运行的配置提供命令行参数。因此,要调试“仪器”配置,转到Run > Debug 配置菜单并将 Eclipse 调试配置中的Arguments选项卡设置为 --package -- package <package to run> instrument

使用 Eclipse 进行远程调试

按照以下步骤远程调试从tradefed.sh命令行启动的 tradefed 会话:

  1. 使用调试标志启动 tradefed.sh:TF_DEBUG=1 TF_DEBUG=1 tradefed.sh
  2. 等到你从 JVM 看到这个提示: Listening for transport dt_socket at address: 10088这意味着 JVM 正在等待调试器在端口10088附加。
  3. 从主菜单附加 Eclipse 的远程调试:选择Run > Debug Configurations...。
  4. 在弹出对话框中,从左侧菜单中选择远程 Java 应用程序
  5. 单击操作栏上的新建启动配置图标。
  6. 根据需要命名配置并选择tradefederation作为项目。
  7. 使用前面提供的地址填充端口。
  8. 切换到Source选项卡并将项目tradefederationgoogle-tradefed 添加Source Lookup Path
  9. 单击调试以启动调试会话。

调试器附加到正在监听的 JVM 进程,运行tradefed.sh的终端显示tf>提示符。

要在调试模式下单步执行您的代码,请在 Eclipse 中设置一个断点并在终端中调用您的 Tradefed 命令(即run <test> )。要在 TF 启动期间调试任何内容,您可以先设置断点,然后附加 Eclipse 调试器。

提示:要使用备用端口,请将TF_DEBUG_PORT=nnn添加到上述步骤 1 中的命令中。如果您有神秘的挂起错误要调查,您甚至可以在生产环境中使用它:在tradefed.sh suspend=y更改为suspend=n并从调试标志开始。 JVM 不会等待调试器附加,但只要进程仍在运行,您就可以随时这样做。

使用 JDB 进行远程调试

要使用 Java Debugger JDB,请遵循与 Eclipse 类似的步骤:

  1. 使用调试标志启动tradefed.sh TF_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. 转到帮助 > 安装新软件并将向导指向:http://update.eclemma.org/
  3. 安装后,选择Coverage As > JUnit测试选项进行代码覆盖运行。