调试器不会在断点处停止(Arquillian,TomEE,OpenJPA Enhancer,Maven,JUnit和IntelliJ)

时间:2016-03-04 18:42:37

标签: maven intellij-idea junit openjpa tomee

我正在编写一个使用JAX-RS(Apache CXF)和JPA(Apache OpenJPA)的Web应用程序,并使用TomEE +进行部署。我已经开始使用Arquillian通过arquillian-tomee嵌入的maven依赖来对我的REST服务进行单元测试。

当我使用IntelliJ启动Maven构建生命周期的测试阶段时,一切都很好。它在我的JPA实体上运行OpenJPA的增强器,启动单元测试,并且我能够成功调用我的Web服务,并且他们能够成功访问数据库。

不幸的是,如果我在调试模式下启动测试阶段,一切仍然有效,但没有一个断点被击中。我该怎么做才能解决这个问题?

我找到了一个繁琐的解决方法。我可以右键单击每个单元测试并在调试模式下运行,调试器将命中断点...但是我必须事先手动运行OpenJPA增强器才能使JPA代码正常工作。

3 个答案:

答案 0 :(得分:1)

当您“在调试模式下启动测试阶段”时,这意味着 Maven以调试模式运行,而非调试您的应用程序。您无法通过maven调试您的应用。 Maven使用surefire-plugin运行测试,你不能使用断点和调试。

答案 1 :(得分:0)

有两种可能性: 1)代码/断点不可达/不用当前上下文调用。 2)您没有在调试模式下运行应用程序。

确保您正在调试应用程序而不是像“运行方式...”

那样运行它

考虑到您正在使用Eclipse,请运行 - >调试为 - > < -Your Target Application->

还要确保在哪里添加了断点,这些行都可以访问。

答案 2 :(得分:0)

我遇到过IntelliJ调试问题,之前没有遇到过断点。您可能有运气禁用JUnit插件并重新启动IDEA。