SureFire插件的麻烦:-“分叉的VM在没有正确告别的情况下终止了。虚拟机崩溃或系统。退出调用 ?"

运行单元测试时,会发生以下异常:

org.apache.maven.lifecycle.LifecycleExecutionException: ExecutionException; nested exception is java.util.concurrent.ExecutionException: java.lang.RuntimeException: The forked VM terminated without saying properly goodbye. VM crash or System.exit called ?
at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoals(DefaultLifecycleExecutor.java:719)
at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoalWithLifecycle(DefaultLifecycleExecutor.java:556)
at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoal(DefaultLifecycleExecutor.java:535)
at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoalAndHandleFailures(DefaultLifecycleExecutor.java:387)
at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeTaskSegments(DefaultLifecycleExecutor.java:348)
at org.apache.maven.lifecycle.DefaultLifecycleExecutor.execute(DefaultLifecycleExecutor.java:180)
at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:328)
at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:138)
at org.apache.maven.cli.MavenCli.main(MavenCli.java:362)
at org.apache.maven.cli.compat.CompatibleMain.main(CompatibleMain.java:60)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:48)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:37)
at java.lang.reflect.Method.invoke(Method.java:600)
at org.codehaus.classworlds.Launcher.launchEnhanced(Launcher.java:315)
at org.codehaus.classworlds.Launcher.launch(Launcher.java:255)
at org.codehaus.classworlds.Launcher.mainWithExitCode(Launcher.java:430)
at org.codehaus.classworlds.Launcher.main(Launcher.java:375)

有什么建议吗?


答案 1

有什么建议吗?

异常的错误消息可能解释了所发生的情况。其中一个单元测试具有

  • 称为 或System.exit()
  • 破坏了单元测试工具,或者
  • 执行了导致运行它的 JVM 崩溃的事情。

我们无法告诉您是哪一个。

(我想象这个问题被报告是因为maven JVM期望子JVM将单元测试结果写入其标准输出。它从孩子那里得到的是缺少说单元测试已经完成的消息(或其他任何东西)。根本原因可能与建议的替代方案不同,但我对此表示怀疑,而且这是毫无意义的推测......

日志文件中可能有更多有关违规单元测试的信息。检查/他们。


答案 2

我在运行maven目标“包”时遇到了同样的问题。当我在执行“包”之前执行目标“干净”时,问题已得到解决


推荐