在单元测试中指定log4j的配置文件

时间:2022-08-03 10:28:39

在开发过程中,我们会使用到log4j来输出日志,我们希望在单元测试的时候,只看到部分日志信息,或者定义日志输出的级别。

 

这个时候手工指定log4j的配置文件:

 

具体做法如下:

定义类如下:

import java.io.FileNotFoundException;

import org.junit.runners.model.InitializationError;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
import org.springframework.util.Log4jConfigurer;

public class JUnit4ClassRunner extends SpringJUnit4ClassRunner {
    static {
      try {
        Log4jConfigurer.initLogging("classpath:conf/log4j.xml");
      } catch (FileNotFoundException ex) {
        System.err.println("Cannot Initialize log4j");
      }
    }
    public JUnit4ClassRunner(Class<?> clazz) throws InitializationError {
      super(clazz);
    }
  }

单元测试类使用如下:

 

@RunWith(JUnit4ClassRunner.class)
@ContextConfiguration(locations={"classpath:conf/app-test.xml"})
@TransactionConfiguration(transactionManager="transactionManager", defaultRollback=false)
@Transactional
public class BaseTestCase {

}

其他的单元测试类继承BaseTestCase  就可以使用指定的配置文件了。