Eclipse开发Maven项目提示:程序包org.junit不存在解决方案

一、产生的问题:html

maven项目执行单元测试能够正常执行,可是执行maven命令test,则报一下异常:java

org.apache.maven.plugins:maven-compiler-plugin:2.5.1:testCompile (default-testCompile) on project support: Compilation failure: Compilation failure:
[ERROR] E:\workspace\support\src\test\java\com\test\spring\support\TestSpringContextHolder.java:[7,16] 错误: 程序包org.junit不存在
[ERROR] E:\workspace\support\src\test\java\com\test\spring\support\TestSpringContextHolder.java:[16,2] 错误: 找不到符号
[ERROR] 符号:   类 Test
[ERROR] 位置: 类 TestSpringContextHolder
[ERROR] E:\workspace\support\src\test\java\com\test\spring\support\TestSpringContextHolder.java:[29,2] 错误: 找不到符号
[ERROR] 符号:   类 Before
[ERROR] 位置: 类 TestSpringContextHolder
[ERROR] E:\workspace\support\src\test\java\com\test\spring\support\TestSpringContextHolder.java:[43,5] 错误: 找不到符号

  

二、产生上述错误的缘由:spring

1)、maven项目,单元测试和运行使用不一样的classpath,测试使用test-classpath,运行使用classpath;
2)、建立maven项目使用junit默认的版本为3.8.1,它使用的是编程的方式,即便maven dependencies目录引入了junit,但也没法使用,只能经过build path添加junit支持apache

        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>3.8.1</version>
            <scope>test</scope>
        </dependency>

 

三、解决方案:编程

将junit的版本提升到4.x,配置代码以下:iphone

<dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <!-- 默认的版本为3.8.1,修改成4.x,由于3.x使用的为编程的方式,4.x为注解的形式。 --> <version>4.11</version> <scope>test</scope> </dependency>

四、补充:我上面贴出的异常目录位于。。。\src\test\java\。。。,不是。。。\src\main\java\。。。,处理方式如上,若是异常发生在main目录而不是test目录,同时junit版本是4.x,解决方案则将scope属性去掉:maven

<dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <!-- 默认的版本为3.8.1,修改成4.x,由于3.x使用的为编程的方式,4.x为注解的形式。 --> <version>4.11</version> <!-- 去掉scope做用域,使用默认的compile,编译、测试、运行都有效的做用域 --> <!--<scope>test</scope>--> </dependency>

解决思路参考:https://blog.csdn.net/javaloveiphone/article/details/52163396
单元测试

相关文章
相关标签/搜索