我在使用NetBeans 8.0.2來分析多模塊maven項目中的junit測試時遇到同樣的問題。
我通過將測試抽取到獨立的Maven項目中並將其他模塊添加爲依賴項來解決此問題。
它在多模塊項目中不起作用的原因是單擊配置文件測試文件 NetBeans生成不正確的命令行。 例如在多模塊項目時,它產生:
cd C:\test; "JAVA_HOME=C:\\Program Files\\Java\\jdk1.8.0_40" cmd /c "\"\"C:\\Program Files\\NetBeans 8.0.2\\java\\maven\\bin\\mvn.bat\" -Dtest=PerfTest -DforkMode=once -Dmaven.surefire.debug=${exec.args} -Dexec.args= -Dmaven.ext.class.path=\"C:\\Program Files\\NetBeans 8.0.2\\java\\maven-nblib\\netbeans-eventspy.jar\" -Dfile.encoding=UTF-8 surefire:test\""
而它應該是:
cd C:\test; "JAVA_HOME=C:\\Program Files\\Java\\jdk1.8.0_40" cmd /c "\"\"C:\\Program Files\\NetBeans 8.0.2\\java\\maven\\bin\\mvn.bat\" -Dtest=PerfTest -DforkMode=once -Dmaven.surefire.debug=${exec.args} -Dexec.args=\"-agentpath:\\\"C:/Program Files/NetBeans 8.0.2/profiler/lib/deployed/jdk16/windows-amd64/profilerinterface.dll\\\"=\\\"C:\\Program Files\\NetBeans 8.0.2\\profiler\\lib\\\",5140,10 -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=C:\\Users\\foo\\AppData\\Local\\NetBeans\\Cache\\8.0.2\\mavencachedirs\\2029222463\\org-netbeans-modules-profiler \" -Dmaven.ext.class.path=\"C:\\Program Files\\NetBeans 8.0.2\\java\\maven-nblib\\netbeans-eventspy.jar\" -Dfile.encoding=UTF-8 surefire:test\""
TL; DR - 的-Dexec.args =參數是在多模塊項目是空的。
你有沒有試過一個虛擬項目(比如說一個類,有一個可以永久睡眠的主類),看看它是否與你的項目相關的權限/設置/ ...問題? – assylias
是的,這沒有奏效。但事實證明,如果我使用動態連接模式,它就可以工作。謝謝! – PiTheNumber