mvn test 调用的是 maven-surefire-plugin 插件,然后就是在argLine配置编码为UTF-8,junit5建议使用最新版本,低版本不生效
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>3.0.0-M5</version>
<configuration>
<argLine>-Dfile.encoding=UTF-8</argLine>
<!-- <argLine>-Xmx1024m -XX:MaxPermSize=256m -Dfile.encoding=UTF-8 -Xverify:none</argLine>-->
<reuseForks>false</reuseForks>
<forkCount>1</forkCount>
<skipAfterFailureCount>1</skipAfterFailureCount>
</configuration>
</plugin>
原因分析:maven-surefire-plugin 在执行测试的时候,会 fork 出新的 JVM 进行测试,而这个JVM的参数是无法通过 MAVEN_OPTS 进行设置的,所幸在 maven-surefire-plugin 中提供了 进行配置。