远程调试
远程调试是一项功能,允许您在本地开发者机器的IDE上远程调试在TeamCity代理机器上的测试。 当代理环境在某些方面独特,导致测试失败,并且在本地难以复现问题时,此功能将非常有用。
启用了 IntelliJ-based IDEs 的 TeamCity 集成 后,可以直接从 IntelliJ IDEA 启动基于 IntelliJ IDEA 项目和 Ant 构建步骤的构建的远程调试会话。
目前,支持以下的 IntelliJ IDEA 运行配置:
Java 应用程序运行配置
JUnit 运行配置
TestNG 运行配置
Ant 步骤的远程调试要求构建配置具有 teamcity.remote-debug.ant.supported=true
参数。
前提条件
在装有 TeamCity 插件 for IntelliJ IDEA 的本地开发者机器上运行 IntelliJ IDEA 配置
在 TeamCity 服务器上使用 IntelliJ IDEA Project 运行器作为其中一项 构建步骤 来创建配置
通过套接字连接,将远程 TeamCity 代理 对本地机器运行此构建
远程调试测试
要开始远程调试测试,选择测试并从上下文菜单中选择 在 TeamCity 代理 上远程调试 <测试名称> 选项(远程调试 功能也可以在 TeamCity 插件菜单中找到。 此操作将要求您选择一个 IntelliJ IDEA 运行配置。
一旦您做了这个,TeamCity 插件将要求您选择一个构建配置,您希望在其中开始调试会话。 这个过程与启动个人构建类似。 例如,如果有个人更改,将创建一个个人补丁并发送给代理。 同样,由于过程基本相同,当您选择构建配置时,您可以指定代理,自定义属性等等。
如果所选配置包含多个 IntelliJ IDEA 项目构建步骤,插件将让您选择在哪些构建步骤开始调试会话。
在此之后,构建将被添加到队列中,标准的 IntelliJ IDEA 调试工具窗口将会出现:
调试工具窗口工作在监听模式,即它在等待代理连接至它。 一旦代理连接,代理上的 Java 进程将暂停,且在 IDE 中会出现 Agent Attached 通知:
现在我们可以设置一些断点,然后通过点击通知弹出窗口或调试工具窗口中的 开始 实际开始调试会话。
一旦 JVM 进程退出,IDE中会出现另一个通知弹出窗口:调试会话尚未结束,您可以选择重新开始或结束它。 选择 Repeat 将会重新运行相同的构建步骤,这比启动新的调试会话要快得多。