您可以按照以下步骤来使用 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
(可选)如果您还想加载 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 中执行以下操作:
依次转到“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 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 )。如需在 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。
检查代码覆盖率
依次转到“Help”>“Install New Software”,然后将向导指向:http://update.eclemma.org/
安装后,依次选择“Coverage As”>“JUnit test”选项以执行代码覆盖率运行。