测者的测试技术手册:Junit执行单元测试用例成功,mvn test却失败的问题和解决方法…

测者的测试技术手册:Junit执行单元测试用例成功,mvn test却失败的问题和解决方法…

今天遇见了一个奇怪的问题,在IDE中run unit test,全部cases都成功了,但是后来通过mvn test运行case确保错了。在寻求原因的同时也找到了对应的解决方法。

Run Unit Test和Maven test的区别

差异1:在IDE中通过选中单元测试路径,点击右键选择run test和点击maven中的test是有区别的。在Maven执行测试的过程中,是不允许测试cases访问其他项目的测试类和其他项目的resources下文件的。也就是说,在a/src/test/java下的测试用例,是不能引用b/src/test/java中的类的,同时也不允许访问b/src/test/resources下的资源的。但是在IDE中的Run Unit Test几乎是没有这样的限制的。

差异2:Maven强制要求src/test/java下不能存在resource的文件,必须放到src/test/reources文件夹下,但是IDE却很少有对应的约束。

这些约束就是导致IDE下Run Unit Test是成功的,但是在Maven中失败的原因。

因此测者提醒,提交单元测试代码之前,一定要在本地mvn test一次脚本。

解决的办法

在maven插件配置:(surefire2.14以下版本)

<plugin>     <groupId>org.apache.maven.plugins</groupId>     <artifactId>maven-surefire-plugin</artifactId>     <version>2.12</version>     <configuration>         <forkMode>always</forkMode>     </configuration> </plugin>复制代码

重点加入configureation的配置部分

在maven插件配置:(surefire2.14及其以上版本)

 <plugin>     <groupId>org.apache.maven.plugins</groupId>     <artifactId>maven-surefire-plugin</artifactId>     <version>2.19.1</version>     <configuration>         <reuseForks>false</reuseForks>         <forkCount>1</forkCount>     </configuration> </plugin>复制代码

在2.14以上的版本中,forkMode配置项已经废弃了。

另一个可能有效的方法

有时候在webapp项目中进行测试的时候,需要WEB-INF文件夹放在Class Path中,配置如下:

<plugin>     <groupId>org.apache.maven.plugins</groupId>     <artifactId>maven-surefire-plugin</artifactId>     <version>2.19.1</version>     <configuration>         <reuseForks>false</reuseForks>         <forkCount>1</forkCount>         <argLine>-Xmx1024m -XX:MaxPermSize=256m -Dfile.encoding=UTF-8 -Xverify:none</argLine>         <additionalClasspathElements>             <additionalClasspathElement>${basedir}/src/main/webapp/‌WEB-INF/</additionalClasspathElement>         </additionalClasspathElements>     </configuration> </plugin>复制代码

关注测者,关注测试

转载于:https://juejin.im/post/5c1af242e51d453ba97d2ace

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/101246.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • 天涯共此双11——天猫升级港澳台“购物天堂”

    天涯共此双11——天猫升级港澳台“购物天堂”香港北区上水60多年的老字号正和隆酱油没想过会出名。这家专注服务街坊的小店不在乎“酱香巷子深”,门店一半是透明及地的塑胶门帘,一半是一块块拼接起来的黄色纸板箱。来的都是熟客,所谓收银台就是个铅桶,顾客要付钱就把铅桶拉下来,付钱、找零,再把铅桶放上去。这是父辈们持续了半个多世纪的生意。到了店主女儿这里,事情开始改变。她赶时髦,在店里放了有支付宝二维码的蓝白…

  • turtle递归作图绘制谢尔宾斯基地毯【详解】

    turtle递归作图绘制谢尔宾斯基地毯【详解】python数据结构与算法turtle递归作图绘制谢尔宾斯基地毯

  • PC最好的dsd播放软件_安卓的dsd播放软件

    PC最好的dsd播放软件_安卓的dsd播放软件其实是Prismsound出的Sadie6….如果感觉难买的话可以试试hqplayer。个人尝试过的播放软件排名:①Sadie610无可挑剔,搭配8xr是PCHIFI最强数字源之一②Amarra8.5几近完美,略有差距,搭配Macmini或者MBP比较好,不建议iMac③Hqplayer8与amarra同级,但win平台比mac在数字输出还是略差一点,在优化良好的专机上可得8.5-9…

    2022年10月26日
  • 微软Office2007专业增强版 集成最新SP3[通俗易懂]

    微软Office2007专业增强版 集成最新SP3[通俗易懂]微软Office2007专业增强版,集成最新SP3补丁包,集成序列号,安装完后自动激活,不仅在功能上进行了优化,而且安全性稳定性更得到了巩固。  MicrosoftOfficeProfessionalPlus2007包括:  MicrosoftOfficeExcel2007  MicrosoftOfficeOutlook2007  MicrosoftOfficePower…

  • obs录制黑屏怎么解决_obs窗口捕获黑屏

    obs录制黑屏怎么解决_obs窗口捕获黑屏00.目录文章目录00.目录01.问题描述02.问题分析03.问题解决04.成功测试01.问题描述打开OBS后,新建场景、新建显示器捕获后,黑屏没有显示,即使点击开始录制,然后结束录制后,录制的视频仍然是黑屏。02.问题分析安装包是从官网下载的,安装过程没有报错,启动过程也没有报错,但是却捕捉不到显示器中的图像。首先考虑的是软件兼容性的问题,但是在我将兼容性设置成”W…

  • Linux环境的搭建「建议收藏」

    Linux环境的搭建「建议收藏」1、准备工作工具:(网上下载,也可以留言评论,我给你链接)VMware-workstation-full-12.5.7.20721.exe(虚拟机)ubuntu-16.04.5-desktop-amd64.iso(ubuntu镜像文件)winscp(图形用户界面)备注:也可以不用虚拟机,直接在window系统下安装,但是比较麻烦,要分出盘给linux系统,相当于电脑有双系统。我是把lin…

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号