写接口测试用例,用到junit,log4j。项目的默认编码是utf-8,text file encoding也是utf-8。
单个测试类,通过JUint test方式运行,没有问题,log里面的中午也都正常显示。
16:35:54 [INFO] reqJson={"auth":{"appName":"test","password":"000000","userName":"nocon","mapType":"google"},"cmd":"firstPageData","params":{"objId":"","cityId":"","userId":"74841c603daf4d2ab358542ac3535057","cityName":"南京市"}} 16:35:54 [INFO] resJson={"cmd":"firstPageData","result":0,"resultNote":"Success","totalRecordNum":1,"pages":1,"pageNo":0,"detail":{"getVehicleRest":{"restLicense":"不限行","restNote":""},"getWeatherAndWashIndex":{"city":"南京","today":{"temp":"20~11℃","weather":"多云转阴","wind":"东南风3-4级","washIndex":"适宜","img":"1"},"tomorrow":{"temp":"20~10℃","weather":"多云转晴","wind":"西风3-4级","img":"2"},"afterTomorrow":{"temp":"21~12℃","weather":"晴转多云","wind":"东风转东南风3-4级","img":"1"}}}}
可通过Maven build方式运行整个测试工程的时候,测试用例总是失败!!打开log文件,发现里面的中文全是乱码。
16:37:36 [INFO] reqJson={"auth":{"appName":"test","password":"000000","userName":"nocon","mapType":"google"},"cmd":"firstPageData","params":{"objId":"","cityId":"","userId":"74841c603daf4d2ab358542ac3535057","cityName":"�Ͼ���"}} 16:37:36 [INFO] resJson={"cmd":"firstPageData","result":1,"resultNote":"��ݳ������δ��ѯ����Ӧ�ij���ID","totalRecordNum":0,"pages":1,"pageNo":0,"detail":{}}
从而推断是maven运行的时候默认编码问题导致此问题。
于是首先把maven的sourceEncoding配置为utf-8
<properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding> </properties>
运行之后,仍然报错,中文乱码。
然后把maven-compiler-plugin插件中的encoding也变为utf-8
<plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <configuration> <source>1.6</source> <target>1.6</target> <encoding>UTF-8</encoding> </configuration> </plugin>
运行之后,仍然报错,中文乱码。
接着继续尝试,把run configurations中的maven build也设置为utf-8
可,仍然中文乱码报错!!
最后,冷静下来。仔细分析,我的工程是测试工程,里面的类都是测试类,maven-compiler-plugin是compiler代码用的插件,而我的maven build的时候,默认是<defaultGoal>test</defaultGoal>。
于是把关注点放在了maven-surefire-plugin插件上,修改如下
<plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-surefire-plugin</artifactId> <version>2.5</version> <configuration> <forkMode>once</forkMode> <argLine>-Dfile.encoding=UTF-8</argLine> <includes> <include>**/*Test.java</include> </includes> <excludes> </excludes> </configuration> </plugin>
运行,一片绿色,成功!!
走了不少弯路,还是自己对maven的插件不太熟悉造成的。知错能改,一步步来。
在此,分享几篇maven插件文章:
http://hi.baidu.com/danghj/item/e134441e123d22f587ad4ec1
相关推荐
主要介绍了Maven发布Jar包中文乱码解决方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
maven-javadoc-plugin 插件 解决中文乱码 和注解 时间问题, 包括eclipse.ini设置、pom.xml设置、maven build GBK设置、eclipse注释设置、eclipse注释模版(可导入)。
maven testng 报告中文乱码(csdn)————程序
解决log4j乱码 在log4j.properties配置文件中可以指定字符编码: 下面这行配置指定了两个appender: log4j.rootCategory=INFO,appender1的名字,appender2的名字 下面这两行配置将上一行的两个appender的字符...
搭建maven工程中遇到的问题,适合新手参考,少走弯路。谢谢。
Maven创建商品增删改查功能,未连接数据库。其中已解决中文乱码问题,,
根据老师讲解,将我自己写的代码写出来,测试没有问题!
Maven聚合工程源码,工作空间压缩包
maven 逆向逆向工程
hibernate+maven demo项目工程, 通过maven 动态加载类库 注释写法,xml写法都有
spring+maven 整合项目工程 通过注释实现IOC 通过 xml实现IOC 以及 xml aop实现
IDEA中Maven依赖包报错的问题解决方案汇总.docx
maven工程转web工程
在idea中创建多maven模块工程。 同时在一个idea窗口中打开多个已有的工程,便于管理和查看。
maven常用命令以及以个测试项目方便测试
maven构建项目工程,简单构建方便,快速
利用maven构建项目,ssh简易框架,利用了聚合和继承
1.maven聚合工程,父工程统一管理依赖版本 2.分模块设计,模块之间通过jar包的方式互相引用 3.基于springboot框架 4.整合了Lombok、Spring MVC、Druid、Mybatis、MySQL
MVN MAVEN 父子工程 父子目录 eclipse
maven安装maven安装maven安装maven安装maven安装maven安装maven安装maven安装maven安装maven安装maven安装maven安装maven安装maven安装maven安装maven安装maven安装maven安装maven安装maven安装maven安装maven安装...