写接口测试用例,用到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
相关推荐
项目中遇到此需求,网上搜罗各种资料,都没有100%解决问题,要么丢字符,要么格式错乱,要么乱码,潜心攻克几天,终于找到完美方案,现分享给各位同仁; 基于apache pdfbox库实现Java PDF转图片,带源码和pom文件;...
网上搜罗各种资料,都没有100%解决问题,要么丢字符,要么格式错乱,要么乱码,潜心攻克几天,终于找到完美方案,现分享给各位同仁; 基于apache pdfbox库实现Java PDF转图片,带源码和pom文件; 开发环境导入maven...
由于提供的文件内容中包含大量的乱码字符,以及一些明显错误的编码(例如“9831”、“10115”等,这些都不符合自然语言的表述习惯),导致无法直接从中提取有效且准确的知识点。不过,我们可以从文档的标题和描述...
总之,这份操作手册是MyEclipse使用者的宝贵资源,它不仅包含基本操作,还涵盖了解决问题的方法和提高效率的技巧。通过深入学习和实践,开发者可以更加熟练地驾驭MyEclipse,提升自己的开发能力。
可以通过在线教程,如B站上的视频,或文档中的链接来学习和解决问题。每一个功能的实现和源码都有注释,方便理解和复盘。 总的来说,SSM整合是JavaWeb开发中一项重要的技能,通过这个基础的增删改查项目,你可以...
- 同样在`tomcat/conf/logging.properties`中注释掉指定行即可解决问题。 以上是IntelliJ IDEA 2018.3.2版本的基础使用教程,涵盖了软件的安装配置、基础设置、项目创建与调试、Maven与版本控制系统的集成等内容。...
- **设置JSP与项目编码:** 将JSP文件和整个项目的编码统一设置为UTF-8,以避免乱码问题。 **7. JRE环境配置:** - **选择版本:** 选择适合当前项目的JRE版本,如JRE 1.7,并添加到MyEclipse中。 - **指定JDK...
xml java系统源码 #PatatiumWebUi 简介 这是一个WebUI自动化测试框架,由创办人土豆(本人技术笔名)所创建,该web自动化测试框架是用java语言编写的,基于selenium ...工程项目编码需要设置为UTF-8否则会出现中文乱码
SpringMVC的配置涉及`web.xml`的配置,包括DispatcherServlet前端控制器和过滤器,以解决中文乱码问题。此外,还需要创建`springmvc.xml`配置文件,定义SpringMVC的组件,如处理器映射器、视图解析器等。 最后,...
* 软件服务工程导论、服务业务分析与建模、软件服务使能技术、服务系统体系结构与设计、软件测试与质量保证、软件与社会、Java 程序设计、Web 应用开发技术、移动计算技术、电子商务与互联网金融、云计算与软件服务...
// 设置编码,避免中文乱码问题 Workbook workbook = Workbook.getWorkbook(new File("rw_Excel"), ws); ``` 2. **获取工作表(Sheet)**:Workbook包含了一个或多个工作表,每个工作表对应Excel的一个sheet。你...
+ 登录页:如果是本地部署 http://localhost:8080/crm/login.jsp ,端口号以及项目名要与部署的环境一致+ 开发过程异常错误解决方法 + 使用bootstrap的日历插件时,对应的中文字符乱码,重新创建文件,复制并保存,...
- `CharacterEncodingFilter`:用于设置字符编码,避免中文乱码问题。 - **其他配置**: - `session-timeout`:设置 session 的超时时间。 - `welcome-file-list`:定义项目的默认欢迎页面。 #### 2.2 struts....
5. **算法**:在解码乱码单词时,可能会使用到回溯算法或者动态规划,这两种算法都能在尝试所有可能性中找到正确的解决方案。回溯适用于解谜问题,而动态规划则在处理有最优解的问题时表现出色。 6. **异常处理**:...
- 测试:单元测试确保各功能模块正确,集成测试检查整体性能。 - 部署上线:在服务器上部署系统,进行实际运行。 7. **学习价值** 对于初学者,这个项目是理解和实践Java Web开发的绝佳案例,涵盖了许多基础知识...