如何在IntelliJ中调试集成测试?

Dim*_*ims 8 java integration-testing intellij-idea maven

我创建运行配置中Maven Projects

mvn -Dit.test=PredictionWorkflowTest verify
Run Code Online (Sandbox Code Playgroud)

看起来像这里

在此处输入图片说明

然后在里面设置断点PredictionWorkflowTest。不幸的是,当我右键单击该配置并选择对其进行调试时,测试通过,就好像没有设置断点一样。

如何使断点起作用?

如果我通过单击类本身来运行测试,则会触发断点,但集成条件不起作用(服务器未启动)。

小智 12

步骤 1:将调试添加到 maven 运行配置

您可能正在使用 Maven Failsafe Plugin 来运行测试,如他们的文档中所述

如果是这种情况,您需要将-Dmaven.failsafe.debug此处的文档)添加到您的 Maven 配置中,以便它变成

mvn -Dit.test=PredictionWorkflowTest verify -Dmaven.failsafe.debug
Run Code Online (Sandbox Code Playgroud)

当你运行这个 maven 命令时,调试器会默认监听 5005 端口

第 2 步:在 IntelliJ 中配置远程调试器

现在在 IntelliJ 中,您需要在localhost端口上配置远程调试器配置5005

集成测试的远程调试器配置

第 3 步:调试您的应用

最后,运行 maven 命令。就在测试之前,它将停止并等待调试器开始运行测试。终端中将显示以下消息

Listening for transport dt_socket at address: 5005
Run Code Online (Sandbox Code Playgroud)

然后启动在步骤 2 中配置的远程调试器。这应该允许您在集成测试断点上调试您的应用程序。