springMvc+maven中整合junit

junit在运行时候需要用到log4j,但是log4j的配置文件在启动的时候需要加载得到,这就要求一开始能够找到这个log4j.properties文件,在junit中默认是从src文件目录寻找到log4j.properties文件,但是如果log4j.properties文件不在src目录下则会报如下错误:

Cannot Initialize log4j 
log4j:WARN No appenders could be found for logger `(org.springframework.test.context.junit4.SpringJUnit4ClassRunner).
log4j:WARN Please initialize the log4j system properly.
log4j:WARN See http://logging.apache.org/log4j/1.2/faq.html#noconfig for more info.

一般log4j.properties文件都会放在特定的目录下,为了查找到log4j.properties文件则可以采用如下办法:
创建一类JUnit4ClassRunner该类继承SpringJUnit4ClassRunner

public class JUnit4ClassRunner extends SpringJUnit4ClassRunner {
     static {  
            try { 
                Log4jConfigurer.initLogging("classpath:propertis/log4j.properties");    //指定log4j.properties文件位置
            } catch (FileNotFoundException ex) {  
                System.err.println("Cannot Initialize log4j");  
            }  
    }  
    public JUnit4ClassRunner(Class<?> clazz) throws InitializationError {
        super(clazz);
    }
}

然后测试类如下配置:

@RunWith(JUnit4ClassRunner.class)
@ContextConfiguration(locations = {"classpath:config/spring-context.xml"})  
public class TestJava {
    private Logger logger = Logger.getLogger(TestJava.class);

    @Autowired
    private TestServiceI testService;

    @Test
    public void testFindAllUsers() {
        logger.info(testService.findAllUsers().size());
    }
}

注意:如果spring版本和junit不兼容则会报如下错误:

java.lang.NoClassDefFoundError: org/junit/runners/model/MultipleFailureException
at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.withAfterClasses
(SpringJUnit4ClassRunner.java:188)
    at org.junit.runners.ParentRunner.classBlock(ParentRunner.java:145)
    at org.junit.runners.ParentRunner.run(ParentRunner.java:235)
    at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.run(SpringJUnit4ClassRunner.java:163)
    at org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4TestReference.java:86)
    at org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38)
    at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:459)
    at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:675)
    at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:382)
    at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:192)
         Caused by: java.lang.ClassNotFoundException: org.junit.runners.model.MultipleFailureException
    at java.net.URLClassLoader.findClass(URLClassLoader.java:381)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:331)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
    ... 10 more

出现这种情况则可以尝试下换个版本的junit

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
将Spring MVC、Hibernate和Maven项目转换为Spring Boot项目是相对简单的过程。以下是一些步骤可以帮助你实现这个转换。 首先,你需要创建一个新的Spring Boot项目。你可以使用Spring Boot的官方网站提供的工具来创建基础项目结构。使用该工具,你可以选择所需的依赖项,例如Spring Web(用于替代Spring MVC)和Spring Data JPA(用于替代Hibernate)等。 一旦你创建了新的Spring Boot项目,你可以开始迁移你的现有代码。首先,将现有的控制器类和服务类移动到新项目的相应包。确保在移动这些类之后重新配置它们的包路径和依赖项。你可能需要使用IDE工具来自动修复这些问题。 接下来,你需要配置你的Hibernate实体和数据库连接。在Spring Boot项目,这些配置通常存储在application.properties或application.yml文件。根据你的数据库类型和连接信息,进行相应的配置。你还需要调整Hibernate实体类的注解和配置以适应Spring Boot的要求。 接下来,你需要创建一个用于启动Spring Boot应用程序的主类。这个类是你项目的入口点,其包含一个带有@SpringBootApplication注解的main方法。你可以在这个类进行一些额外的配置,例如添加特定的Java配置类或扩展Spring Boot的默认配置。 最后,你可以执行一些测试,确保你的新Spring Boot项目能够正常工作。你可以使用测试框架,例如JUnit或Spring Boot Test,编写和运行单元测试或集成测试。 总结起来,将Spring MVC、Hibernate和Maven项目转换为Spring Boot项目的步骤涉及创建新的Spring Boot项目、迁移现有代码、调整配置、创建主类和执行测试。这些步骤将帮助你成功地完成转换并继续使用Spring Boot来开发你的项目。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值