Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/maven/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
调试器不';不要在断点处停下来(Arquillian、TomEE、OpenJPA增强器、Maven、JUnit和IntelliJ)_Maven_Intellij Idea_Junit_Openjpa_Apache Tomee - Fatal编程技术网

调试器不';不要在断点处停下来(Arquillian、TomEE、OpenJPA增强器、Maven、JUnit和IntelliJ)

调试器不';不要在断点处停下来(Arquillian、TomEE、OpenJPA增强器、Maven、JUnit和IntelliJ),maven,intellij-idea,junit,openjpa,apache-tomee,Maven,Intellij Idea,Junit,Openjpa,Apache Tomee,我正在编写一个web应用程序,它使用JAX-RS(ApacheCXF)和JPA(ApacheOpenJPA),并使用TomEE+进行部署。我已经开始通过Arquillian tomee嵌入式maven依赖项使用Arquillian来单元测试我的REST服务 当我使用IntelliJ启动Maven构建生命周期的测试阶段时,一切都很好。它在我的JPA实体上运行OpenJPA的增强器,启动单元测试,我能够成功地调用我的web服务,他们能够成功地访问数据库 不幸的是,如果我在调试模式下启动测试阶段,一切

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

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

不幸的是,如果我在调试模式下启动测试阶段,一切仍然正常,但我的断点都没有命中。我必须做些什么来纠正这个问题


我找到了一个乏味的解决办法。我可以右键单击每个单元测试并在调试模式下运行,调试器将命中断点…但我必须事先手动运行OpenJPA增强程序,以便JPA代码正常工作。

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

确保您正在调试应用程序,而不是像“运行方式…”那样运行它

考虑到您正在使用Eclipse,请以->身份运行->调试->


还要确保在添加断点的地方可以访问这些行。

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

我以前遇到过IntelliJ调试未命中断点的问题。您可能有幸禁用JUnit插件并重新启动IDEA。

我在单元测试的第一行有一个断点,当我使用我描述的解决方法时,它会命中,所以我不担心到达能力。我还确信,当我启动Maven测试阶段时,它是使用调试模式完成的。我使用IntelliJ右上角的调试图标启动它,它将启动调试窗口。Ok。那么,请添加log/print语句并添加断点,这样您就知道您的测试用例是否正在执行。什么是“在调试模式下启动测试阶段”?maven的命令行是什么?如果你的意思是“-X”,那么它意味着Maven在调试模式下运行,而不是调试你的应用程序。我不是通过命令行使用Maven。我通过IntelliJ IDEA使用Maven。我右键单击maven生命周期的测试阶段,然后单击调试菜单项。为了解决我的问题,我使用IntelliJ创建了JUnit运行/调试配置,并将openjpa:Enhanced目标添加到“启动前”列表中。现在,我可以不用前面描述的繁琐的手动过程来运行测试了。谢谢@埃德拉法夫,你救了我的命!我使用的是Idea 14 CE,我可以看到在调试中启动Maven“test”已经连接到VM/套接字,但没有断点操作!!!正如您所建议的,我创建了一个JUnit配置,事先做了一个Maven“编译”,效果很好,谢谢!