0%

如何在IntelliJ IDEA中的Maven项目中debug测试

什么是Debug

Debug调试是为了找到并修复代码中的错误。这是朝着编写没有bug的代码的方向迈出的重要一步,而没有bug的代码可以创建可靠的软件。

因此,我将以简单的步骤说明如何在IntelliJ IDEA中调试Maven项目的Test测试。

Debug测试

Step 1 :

Debug测试例需要使用到Maven surefire plugin插件。以下使用到的命令是在Ubuntu上执行的。

首先是在需要调试的代码行中打断点。为此,只需在代码编辑区域中单击行的左上角,即可在调试期间暂停测试。单击时将出现一个红点

Step 2 :

进入包含maven项目的集成测试的目录后,在命令行上键入以下命令。

1
2
cd <path-to-the-directory-containing-your-maven-project's-integrationtests>
mvn clean install -Dmaven.surefire.debug

测试将自动暂停,并在端口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恢复程序。