`
yong3773
  • 浏览: 33181 次
社区版块
存档分类
最新评论

maven测试工程,中文乱码问题解决

阅读更多

写接口测试用例,用到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插件文章:

https://github.com/nutzam/nutz/commit/5c56b58b848ad83e07b920490d98f567873977fb#diff-600376dffeb79835ede4a0b285078036R157

 

http://hi.baidu.com/danghj/item/e134441e123d22f587ad4ec1

 

  • 大小: 103.4 KB
分享到:
评论
1 楼 lucky2touch 2014-06-19  
也遇到了一样的问题,感谢楼主,少走了些弯路

相关推荐

    Java PDF转图片 完美方案 绝对可用

    项目中遇到此需求,网上搜罗各种资料,都没有100%解决问题,要么丢字符,要么格式错乱,要么乱码,潜心攻克几天,终于找到完美方案,现分享给各位同仁; 基于apache pdfbox库实现Java PDF转图片,带源码和pom文件;...

    PDF转图片,亲测可用.zip

    网上搜罗各种资料,都没有100%解决问题,要么丢字符,要么格式错乱,要么乱码,潜心攻克几天,终于找到完美方案,现分享给各位同仁; 基于apache pdfbox库实现Java PDF转图片,带源码和pom文件; 开发环境导入maven...

    Java工程师高薪训练营2.0.pdf

    由于提供的文件内容中包含大量的乱码字符,以及一些明显错误的编码(例如“9831”、“10115”等,这些都不符合自然语言的表述习惯),导致无法直接从中提取有效且准确的知识点。不过,我们可以从文档的标题和描述...

    Myeclipse快捷键和常用问题经验总结操作手册打包

    总之,这份操作手册是MyEclipse使用者的宝贵资源,它不仅包含基本操作,还涵盖了解决问题的方法和提高效率的技巧。通过深入学习和实践,开发者可以更加熟练地驾驭MyEclipse,提升自己的开发能力。

    SSM整合_年轻人的第一个增删改查_基础环境搭建.doc

    可以通过在线教程,如B站上的视频,或文档中的链接来学习和解决问题。每一个功能的实现和源码都有注释,方便理解和复盘。 总的来说,SSM整合是JavaWeb开发中一项重要的技能,通过这个基础的增删改查项目,你可以...

    IntelliJ IDEA 2018新手入门教程

    - 同样在`tomcat/conf/logging.properties`中注释掉指定行即可解决问题。 以上是IntelliJ IDEA 2018.3.2版本的基础使用教程,涵盖了软件的安装配置、基础设置、项目创建与调试、Maven与版本控制系统的集成等内容。...

    Myeclipse配置环境

    - **设置JSP与项目编码:** 将JSP文件和整个项目的编码统一设置为UTF-8,以避免乱码问题。 **7. JRE环境配置:** - **选择版本:** 选择适合当前项目的JRE版本,如JRE 1.7,并添加到MyEclipse中。 - **指定JDK...

    xmljava系统源码-PatatiumAppUi:基于appium+java的APPUI自动化测试框架

    xml java系统源码 #PatatiumWebUi 简介 这是一个WebUI自动化测试框架,由创办人土豆(本人技术笔名)所创建,该web自动化测试框架是用java语言编写的,基于selenium ...工程项目编码需要设置为UTF-8否则会出现中文乱码

    SpringMVC-03教案1

    SpringMVC的配置涉及`web.xml`的配置,包括DispatcherServlet前端控制器和过滤器,以解决中文乱码问题。此外,还需要创建`springmvc.xml`配置文件,定义SpringMVC的组件,如处理器映射器、视图解析器等。 最后,...

    程序员面试简历.docx

    * 软件服务工程导论、服务业务分析与建模、软件服务使能技术、服务系统体系结构与设计、软件测试与质量保证、软件与社会、Java 程序设计、Web 应用开发技术、移动计算技术、电子商务与互联网金融、云计算与软件服务...

    jxl解析EXCEl2003

    // 设置编码,避免中文乱码问题 Workbook workbook = Workbook.getWorkbook(new File("rw_Excel"), ws); ``` 2. **获取工作表(Sheet)**:Workbook包含了一个或多个工作表,每个工作表对应Excel的一个sheet。你...

    基于ssm框架的crm项目+源代码+文档说明

    + 登录页:如果是本地部署 http://localhost:8080/crm/login.jsp ,端口号以及项目名要与部署的环境一致+ 开发过程异常错误解决方法 + 使用bootstrap的日历插件时,对应的中文字符乱码,重新创建文件,复制并保存,...

    spring2.5.5+struts2+ibatis2.3.4

    - `CharacterEncodingFilter`:用于设置字符编码,避免中文乱码问题。 - **其他配置**: - `session-timeout`:设置 session 的超时时间。 - `welcome-file-list`:定义项目的默认欢迎页面。 #### 2.2 struts....

    JumbledWords:Java 程序,用于整理单词并在字典中查找

    5. **算法**:在解码乱码单词时,可能会使用到回溯算法或者动态规划,这两种算法都能在尝试所有可能性中找到正确的解决方案。回溯适用于解谜问题,而动态规划则在处理有最优解的问题时表现出色。 6. **异常处理**:...

    web基于Java的图书馆管理系统

    - 测试:单元测试确保各功能模块正确,集成测试检查整体性能。 - 部署上线:在服务器上部署系统,进行实际运行。 7. **学习价值** 对于初学者,这个项目是理解和实践Java Web开发的绝佳案例,涵盖了许多基础知识...

Global site tag (gtag.js) - Google Analytics