我正在编写一个使用JAX-RS(Apache CXF)和JPA(Apache OpenJPA)的Web应用程序,并使用TomEE +进行部署。我已经开始使用Arquillian通过arquillian-tomee嵌入的maven依赖来对我的REST服务进行单元测试。
当我使用IntelliJ启动Maven构建生命周期的测试阶段时,一切都很好。它在我的JPA实体上运行OpenJPA的增强器,启动单元测试,并且我能够成功调用我的Web服务,并且他们能够成功访问数据库。
不幸的是,如果我在调试模式下启动测试阶段,一切仍然有效,但没有一个断点被击中。我该怎么做才能解决这个问题?
我找到了一个繁琐的解决方法。我可以右键单击每个单元测试并在调试模式下运行,调试器将命中断点...但是我必须事先手动运行OpenJPA增强器才能使JPA代码正常工作。
答案 0 :(得分:1)
当您“在调试模式下启动测试阶段”时,这意味着 Maven以调试模式运行,而非调试您的应用程序。您无法通过maven调试您的应用。 Maven使用surefire-plugin运行测试,你不能使用断点和调试。
答案 1 :(得分:0)
有两种可能性: 1)代码/断点不可达/不用当前上下文调用。 2)您没有在调试模式下运行应用程序。
确保您正在调试应用程序而不是像“运行方式...”
那样运行它考虑到您正在使用Eclipse,请运行 - >调试为 - > < -Your Target Application->
还要确保在哪里添加了断点,这些行都可以访问。
答案 2 :(得分:0)
我遇到过IntelliJ调试问题,之前没有遇到过断点。您可能有运气禁用JUnit插件并重新启动IDEA。