什么是Debug
Debug调试是为了找到并修复代码中的错误。这是朝着编写没有bug的代码的方向迈出的重要一步,而没有bug的代码可以创建可靠的软件。
因此,我将以简单的步骤说明如何在IntelliJ IDEA中调试Maven项目的Test测试。
Debug测试
Step 1 :
Debug测试例需要使用到Maven surefire plugin插件。以下使用到的命令是在Ubuntu上执行的。
首先是在需要调试的代码行中打断点。为此,只需在代码编辑区域中单击行的左上角,即可在调试期间暂停测试。单击时将出现一个红点。
Step 2 :
进入包含maven项目的集成测试的目录后,在命令行上键入以下命令。
1 | cd <path-to-the-directory-containing-your-maven-project's-integrationtests> |
测试将自动暂停,并在端口5005上等待远程调试器。(端口5005为默认端口)。我们可以在命令行中看到一条语句,通知它正在监听端口5005。
1 | Listening for transport dt_socket at address: 5005 |
如果需要配置其他端口,则可以将更详细的值传递给上述命令。
1 | mvn clean install -Dmaven.surefire.debug="-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8000 -Xnoagent -Djava.compiler=NONE" |
此命令将会监听端口8000而不是5005。
Step 3 :
如果是第一次运行调试器,则必须在IntelliJ IDEA中编辑Debug配置
。如果已经完成了配置并将远程调试器端口设置为5005,则无需再次编辑配置。
Debug配置可以安装如下流程进行编辑:
- 在IDE中转到“Run –> Edit Configurations…”
- 在出现的对话框中,单击左上角的“ +”号
- 在下拉列表中找到“Remote”选项
- 在出现的下一个窗口中,在必须指定端口的地方指定端口
- 然后“Apply ”,然后单击“Ok”。
Step 4 :
然后,可以使用IDE附加到正在运行的测试。
- 转到Run –> Debug…
- 然后选择之前指定的配置
现在,测试已附加到远程调试器。上面就是我们需要做的所有事情。
测试将在我们之前指定的断点处暂停。在运行测试时,进出请求的详细信息可以在IDE中看到。我们也可以单击并逐个删除断点,并在每次暂停后通过IDE恢复程序。