千家信息网

@Test注解在Maven工程的Test.class类中无法使用怎么办

发表于:2025-01-21 作者:千家信息网编辑
千家信息网最后更新 2025年01月21日,这篇文章给大家分享的是有关@Test注解在Maven工程的Test.class类中无法使用怎么办的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。@Test注解在Maven的T
千家信息网最后更新 2025年01月21日@Test注解在Maven工程的Test.class类中无法使用怎么办

这篇文章给大家分享的是有关@Test注解在Maven工程的Test.class类中无法使用怎么办的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。

@Test注解在Maven的Test.class类中无法使用

异常背景

在一个maven的web工程里, 我想写一个简单的测试类,于是就创建了一个类Test.class

在这个类里写@Test注解方法, 发现无法导入包,手动import org.junit.Test;导入也是无效

异常信息

异常分析

我第一直觉是,pom.xml没有配置坐标,看看发现配置了

再重新构建下maven,发现还是不行

再重新创建一个其他测试类,发现可以正常使用

也就是说, 创建的测试类的名字不能使用Test , 可能原因我猜注解和类同名问题

解决方案

就是删除这个Test.class测试类, 换一个名字就可以了

Maven工程找不到@Test

今天在IDEA下搭建maven进行单元测试的时候,在非test文件下面,写了一个测试类,发现@Test注解找不到,但是发现根路径下是有junit的jar包的,比较郁闷,然后就去查看自己的代码,发现在maven依赖中,junit的scope是test,如图一所示,果断将测试类放在test文件下,问题迎刃而解。

当然,如果把scope改为compile,测试类不一定要放在test文件下,放在main文件下也可以。

图一

进一步观察可以发现,问题出现在maven依赖范围内,查阅资料发现

maven的scope范围如下

1.test范围指的是测试范围有效,在编译和打包时都不会使用这个依赖

2.compile范围指的是编译范围有效,在编译和打包时都会讲依赖存储进去

3.provided依赖:在编译和测试范围有效,最后生成war时不会加入,例:servlet-api,如图二所示,因为servlet-api,tomcat等在web服务器已经存在,如果在打包会冲突

图二

4.runtime在运行时依赖,在编译的时候不依赖

默认的依赖范围是compile

由此进一步引申出test的传递依赖性,如下:

依赖的传递

作用域是test的包不会传递到引用这个项目的其它项目,但如果不是test会传递依赖到其它项目。

如:项目A中有一个依赖包junit4.10,它的作用域是test

现在有一个项目B,引用项目A,如果项目B要使用junit4.10就必须自己重新定义依赖关系。【因为不会传递依赖,所以不会从项目A中得到】

但:如果作用域是其它的,不是test

那么项目B可以直接使用不用自己再定义一个依赖关系。【因为会从项目A中自动传递依赖,而得到】

感谢各位的阅读!关于"@Test注解在Maven工程的Test.class类中无法使用怎么办"这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,让大家可以学到更多知识,如果觉得文章不错,可以把它分享出去让更多的人看到吧!

项目 测试 范围 注解 编译 工程 文件 有效 作用 问题 怎么办 内容 名字 时候 更多 篇文章 如图 配置 不行 不错 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 饥荒服务器给予管理代码 微信云数据库和mysql哪个好 腾讯云服务器root安装 南信大网络安全警企合作实验室 戴尔机架式服务器经销商 红盟网络安全联盟工作室 盐田区网络技术转移代理价钱 x58双路服务器开机线是哪个 做电气工程师需要学习什么数据库 红色报刊档案数据库账户 印度网络安全视频 华擎主板能用服务器内存条吗 问道经典服有多少服务器 阿里云50G服务器 我的世界服务器公网地址怎么看 技算机网络技术专业 地质学图谱库属文献型数据库 全区网络安全产业 中国网络安全维护大会 用自己电脑做服务器还能进游戏吗 服务器机柜怎么连接电脑 繁昌软件开发文档 数据库中外码是什么意思 fda医疗器械数据库介绍 服务器被黑客创建 魔兽世界大服务器和跨服区别 昆山正规软件开发代理商 数据库 300 G 昌平网络安全二级认证 db2非关系型数据库
0