您的位置:首页 > 其它

Maven中junit打包问题

2016-04-04 15:11 337 查看

1.scope标签的作用

<!-- 添加junit单元测试包 -->
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.12</version>
<scope>test</scope>
</dependency>


[ERROR] /C:/Users/abc/Desktop/owowl/src/main/java/com/ys/redis/Demo.java:[6,17] 程序包org.junit不存在
[ERROR] /C:/Users/abc/Desktop/owowl/src/main/java/com/ys/redis/Demo.java:[7,17] 程序包org.junit不存在
[ERROR] /C:/Users/abc/Desktop/owowl/src/main/java/com/ys/redis/Demo.java:[15,10] 找不到符号


可以看到我已经在pom文件中配置了相关的dependency,但是仍然会显示错误。

这里对于像我这样的新手,我们应该先了解scope标签配置的作用

scope可以配置5个值
* compile,缺省值,适用于所有阶段,会随着项目一起发布。
* provided,类似compile,期望JDK、容器或使用者会提供这个依赖。如servlet.jar。
* runtime,只在运行时使用,如JDBC驱动,适用运行和测试阶段。
* test,只在测试时使用,用于编译和运行测试代码。不会随项目发布。
* system,类似provided,需要显式提供包含依赖的jar,Maven不会在Repository中查找它。


所以可以看到我们配置的是test级别的,所以相关的jar包不会随着项目发布
这里我们可以去掉test
<scope>test</scope>


2.打包时忽略单元测试

上面的方法虽然在控制台的显示中是没有报错的,但是,他却将单元测试类和相关jar一同打包了,这和我们的初衷不符。

在网上搜索了一下 - - Maven 编译打包时如何忽略测试用例的方法

在进行编译、打包时,maven会执行src/test/java中的单元测试用例
跳过测试用例有如下方法

1.-DskipTests,不执行测试用例,但编译测试用例类生成相应的class文件至target/test-classes下。

2.-Dmaven.test.skip=true,不执行测试用例,也不编译测试用例类。


3.无法创建src/test/java

按照上面方法进行编译测试,但是依然没有效果………..好吧,真粗心,测试用例要放于src/test/java

目录下,但是我创建资源文件的时候显示 src/test/java is already exist

项目右键->buildPath configure Build Path->source 显示

Build path entry is missing: 项目名/src/test/java


解决方法有如下

window>preferences->java->compiler->选择本地要用的Java版本
window>preferences->java->installJars->修改为本地jdk
项目右键->buildPath configure Build Path->点击选项卡Libraries->选中JRE System Library->
点击edit->选中Alternate JRE->选择jdk


之后,项目会自动创建src/test/java

我们将测试用例类移动到src/test/java下就可以了
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: