问题
我是使用intellij idea的,项目使用UTF-8编码,但发现一个奇怪的乱码问题,病征如下:
分析
1)由于执行main()是正常的,而执行测试用例却是错误的,说明compile是没有问题的,否则main()执行时就不会正常显示中文了,因此可以不去管compile的VM参数(注:如果是compile期出了问题,则需要为javac设置"-encoding UTF-8 "参数,在idea中,是通过ctrl+alt+s-compiler>java compiler->additional command line parameters设置);
2)main()执行正常,说明通过java运行代码的编码是正常的。通过Maven执行单元测试也是正常的,说明通过Maven显示给testng指定了编码,单元测试就正常了。现在直接通过idea调用testng执行测试用例就乱码了,所以问题应该出在idea没有正确给testng执行器传递正常的项目编码,因此乱码就产生了。在idea中运行测试用例时,其命令可以通过控制台输出的命令查看:
引用
...
com.intellij.rt.execution.application.AppMain org.testng.RemoteTestNGStarter
...
所以,我推测问题应该是出在org.testng.RemoteTestNGStarter上,它执行测试用例时,编码使用了系统默认的GB2312,而没有正确地采用UTF-8.
解决
1)问题清楚了,首先想到的是有没有办法显示给org.testng.RemoteTestNGStarter指定编码类型呢,我尝试通过更改测试的运行配置来设置VM参数:
Run->Edit configuration->TestNG->对应的测试用例,添加VM参数:
设置后再执行测试用例,发现还是乱码!
2)那没有辙了,我只是使出杀手锏--更改idea的启动VM参数了:
到<idea_home>\bin下找到idea64.exe对应的idea64.exe.vmoptions(注:如果你使用idea.exe启动idea,则去改idea.exe.vmoptions),打开之:
-Xms128m
-Xmx1024m
-XX:MaxPermSize=350m
-XX:ReservedCodeCacheSize=96m
-XX:+UseCodeCacheFlushing
-ea
-Dsun.io.useCanonCaches=false
-Djava.net.preferIPv4Stack=true
-Dfile.encoding=UTF8
添加如上的
引用
-Dfile.encoding=UTF8
在末尾,重新启动idea,运行测试用例,终于看到我梦寐以求的正常中文了:
- 大小: 90.9 KB
- 大小: 114.1 KB
分享到:
相关推荐
maven testng 报告中文乱码(csdn)————程序
配合先前的代码demo,进行了一个系统的学习总结
对testNG框架的学习,写了一个demo,并整理了出一份word
NULL 博文链接:https://netpet.iteye.com/blog/2162511
ReportNG报表显示中文乱码和TestNG显示中文乱码实力解决办法-附件资源
1、testng测试报告模板BeautifulReport 2、testng.xml文件
单元测试 框架 testng6.8
单元测试TestNG工具(jar),解压后直接放至eclipse安装目录下
单元测试框架TestNG的eclipse插件安装说明: 本资源包含org.jtester.plugin_0.2.2.jar和org.testng.eclipse_6.1.1.20110713_1401.7z。将org.testng.eclipse_6.1.1.20110713_1401.7z解压缩后得到的文件org.testng....
httpclient testgn 接口测试
spring集成TestNG与Mockito框架单元测试方法
单元测试框架 TestNG1
spring集成TestNG与Mockito框架单元测试方法,方便学习者能快速上手如何单测,对自己的代码能够有质量保证。
开源自动化测试框架testng包,用于appium+java+android测试
本书详细介绍了testNG框架,非常适合单元测试中使用
最近项目要单元测试案例,testng测试工具很强大,用着很爽
java+selenium+maven+testng自动化测试框架实例(实际项目)
《Java测试新技术TestNG和高级概念》通过针对有效测试Java应用程序以及围绕可测试性来设计应用程序和组件展示了这些有效的测试技术,并给出了每种测试方法的优点和不足,展示了解决常见问题的不同选择。《Java测试新...
《Java测试新技术:TestNG和高级概念》通过针对有效测试Java应用程序以及围绕可测试性来设计应用程序和组件展示了这些有效的测试技术,并给出了每种测试方法的优点和不足,展示了解决常见问题的不同选择。《Java测试...