Maven Rest Assured项目运行TestNG用例报UseSplitVerifier错误如何解决
报错说明
Unrecognized VM option 'UseSplitVerifier'
错误:无法创建Java虚拟机,发生致命异常,程序将退出。
相关报错截图:

根因分析
-XX:+UseSplitVerifier是JDK 7版本推出的栈映射帧验证优化参数,仅适用于JDK 7及更早版本。JDK 8开始该参数被官方标记为废弃,JDK 11及更高版本直接移除了该参数,高版本JVM识别到不存在的参数就会直接启动失败。
该参数通常配置在Maven测试插件、IDE运行配置或者全局Maven参数中,使用TestNG执行测试时会被加载到JVM启动参数里。
解决方案
按优先级从高到低选择以下方案:
- 方案1:修改Maven测试插件配置
打开项目根目录的pom.xml文件,找到maven-surefire-plugin(单元测试)或maven-failsafe-plugin(集成测试)的配置段,删除<argLine>属性中的-XX:+UseSplitVerifier参数即可。
示例修改前配置:
修改后配置:<plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-surefire-plugin</artifactId> <version>2.22.2</version> <configuration> <argLine>-XX:+UseSplitVerifier -Xmx1024m</argLine> <suiteXmlFiles> <suiteXmlFile>testng.xml</suiteXmlFile> </suiteXmlFiles> </configuration> </plugin><plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-surefire-plugin</artifactId> <version>2.22.2</version> <configuration> <argLine>-Xmx1024m</argLine> <suiteXmlFiles> <suiteXmlFile>testng.xml</suiteXmlFile> </suiteXmlFiles> </configuration> </plugin> - 方案2:清理IDE运行配置参数
如果是在IDEA、Eclipse等IDE中直接执行单个TestNG用例触发的报错,打开对应测试用例的运行配置,删除VM Options输入框中的-XX:+UseSplitVerifier参数后重新运行即可。 - 方案3:检查全局Maven配置
如果前两个方案都未找到对应参数,检查本地Maven全局配置(conf/settings.xml或用户目录下.m2/settings.xml),删除全局配置中绑定的-XX:+UseSplitVerifier参数。 - 方案4:降级JDK版本(不推荐)
若项目必须保留该兼容参数,将本地运行环境的JDK版本降级到8或更低版本即可正常运行。
验证方式
修改完成后执行mvn test命令运行测试用例,确认JVM正常启动,无参数识别报错。
内容的提问来源于stack exchange,提问作者Bhuvan
相关产品推荐
相关产品推荐

