我运行JUnit测试时有时会遇到此错误。
我并不是在问这个错误是什么。我只是想知道java VM分叉时它意味着什么?
答案 0 :(得分:24)
“分叉的虚拟机”不是错误(尽管你得到的错误可能与它有关)。
编译和测试的各个方面涉及的一些工具(例如Maven)是用Java编写的,并使用JVM自行运行。
如果您为应用程序运行单元测试而不分支VM,Maven将在Maven运行的同一个VM中运行这些测试。因此,它可能受某些VM范围设置(例如某些系统属性)的影响。
为避免Maven产生的副作用,可以在分叉的虚拟机中运行测试,也就是说,在操作系统中作为不同进程运行的完全独立的虚拟机中运行测试。
(这可以应用于其他工具,Maven只是一个例子。)
崩溃分叉的VM至少可以让你回到另一个启动并编排这些单元测试的Java应用程序。如果您在同一个VM中运行这些测试,那么您也会使启动测试的应用程序崩溃(从而获得非常少的信息)。
答案 1 :(得分:2)