我写测试。我正在使用Cucumber 6.8.1,TestNG 7.0.0。对于并行化,我连接了maven-surefire-plugin 2.22.2,但是我现在还没有并行测试,此刻我仅一个一个地运行所有测试。
大多数测试工作良好(大约45个测试)。但是有几个有问题的测试,即:运行这样的测试时,出现错误“分叉的VM在没有正确说再见的情况下终止了。VM崩溃还是调用了System.exit?”。这是全文:
我在Google中搜索了此错误。而且我已经读到它与maven-surefire-plugin连接。在Internet中,人们提供了解决此问题的不同方法。例如,更改maven插件的版本。目前,我的版本是2.22.2。我尝试了不同的版本:3.0.0-M5、3.0.0-M4、3.0.0-M3、3.0.0-M2、3.0.0-M1、2.22.1、2.22.0、2.21.0、2.20。结果是相同的:我得到了错误。
我也尝试 在maven-surefire-plugin配置中编写参数 -Xmx1024m -XX:MaxPermSize = 256m。这也没有帮助。
而且我也不认为这是由于某些资源不足造成的。在运行这些有问题的测试期间,监视不会显示出特别大的资源消耗:
你能给我一些其他的想法吗?
根据你的日志,Crashed tests,有一个测试类未正确完成。尝试找出正在调用System.exit()
or的库或代码
Runtime.getRuntime.halt()
。由于OSS库的实现退出流程,人们在系统退出方面遇到了这些问题。请查看stackowerflow中的提示,并尝试使用Java中的SystemManager来查找问题。