调试器不会在断点处停止(Arquillian、TomEE、OpenJPA Enhancer、Maven、JUnit 和 IntelliJ)
Debugger doesn't stop at break points (Arquillian, TomEE, OpenJPA Enhancer, Maven, JUnit, and IntelliJ)
我正在编写一个使用 JAX-RS (Apache CXF) 和 JPA (Apache OpenJPA) 并使用 TomEE+ 部署的 Web 应用程序。我已经开始通过 arquillian-tomee-embedded maven 依赖项使用 Arquillian 来对我的 REST 服务进行单元测试。
当我使用 IntelliJ 启动 Maven 构建生命周期的测试阶段时,一切正常。 运行它是我的 JPA 实体上的 OpenJPA 增强器,启动了单元测试,我能够成功调用我的 Web 服务,并且它们能够成功访问数据库。
不幸的是,如果我在调试模式下启动测试阶段,一切仍然有效,但 none 我的断点命中。我必须怎么做才能解决这个问题?
我找到了一个乏味的解决方法。我可以在调试模式下右键单击每个单元测试和 运行,调试器将命中断点...但我必须事先手动 运行 OpenJPA 增强器才能使 JPA 代码工作。
有两种可能:
1) 代码/断点不可访问/未在当前上下文中调用。
2) 您不是 运行正在调试模式下的应用程序。
确保您正在调试应用程序而不是 运行 它像 "Run As..."
考虑到您使用的是 Eclipse,运行 -> Debug As -> <-Your Target Application->
还要确保在添加断点的任何地方都可以访问这些行。
当您 "launch the test phase in debug mode " 时,这意味着 Maven 在调试模式下运行,而不是调试您的应用程序。您不能通过 Maven 调试您的应用程序。 Maven 使用 surefire-plugin 运行测试,不能使用断点和调试。
我以前遇到过 IntelliJ 调试没有遇到断点的问题。您可能会幸运地禁用 JUnit 插件并重新启动 IDEA。
我正在编写一个使用 JAX-RS (Apache CXF) 和 JPA (Apache OpenJPA) 并使用 TomEE+ 部署的 Web 应用程序。我已经开始通过 arquillian-tomee-embedded maven 依赖项使用 Arquillian 来对我的 REST 服务进行单元测试。
当我使用 IntelliJ 启动 Maven 构建生命周期的测试阶段时,一切正常。 运行它是我的 JPA 实体上的 OpenJPA 增强器,启动了单元测试,我能够成功调用我的 Web 服务,并且它们能够成功访问数据库。
不幸的是,如果我在调试模式下启动测试阶段,一切仍然有效,但 none 我的断点命中。我必须怎么做才能解决这个问题?
我找到了一个乏味的解决方法。我可以在调试模式下右键单击每个单元测试和 运行,调试器将命中断点...但我必须事先手动 运行 OpenJPA 增强器才能使 JPA 代码工作。
有两种可能: 1) 代码/断点不可访问/未在当前上下文中调用。 2) 您不是 运行正在调试模式下的应用程序。
确保您正在调试应用程序而不是 运行 它像 "Run As..."
考虑到您使用的是 Eclipse,运行 -> Debug As -> <-Your Target Application->
还要确保在添加断点的任何地方都可以访问这些行。
当您 "launch the test phase in debug mode " 时,这意味着 Maven 在调试模式下运行,而不是调试您的应用程序。您不能通过 Maven 调试您的应用程序。 Maven 使用 surefire-plugin 运行测试,不能使用断点和调试。
我以前遇到过 IntelliJ 调试没有遇到断点的问题。您可能会幸运地禁用 JUnit 插件并重新启动 IDEA。