Junit单元测试运用log4j输出日志ITeye - 亚美娱乐

Junit单元测试运用log4j输出日志ITeye

2019-01-13 05:47:52 | 作者: 运浩 | 标签: 加载,办法,配置文件 | 浏览: 598

  Junit+spring+log4j整合之所以费事,是因为spring与log4j的整合,是放在web.xml里的,随tomcat发动后,spring才会加载log4j,而用junit测验是不需求tomcat发动的,所以Junit与log4j的整合才比较费力。Junit运用spring时,若spring没加载到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.

解决办法1:最简略粗犷的办法
  将log4j配置文件放到src根目录下,这是因为spring加载log4j默许从src目录里找。Junit代码如下:
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations = { "classpath:com/config/springConfig.xml" })
@Transactional
@TransactionConfiguration(transactionManager = "transactionManager", defaultRollback = true)
public class TestHibernate {

  这种办法,尽管直接简略,但许多项目中喜爱把一切配置文件进行统一管理并分类汇总到不同的文件夹下,例如:将一切配置文件放到com.config包下。那么测验的时分就还得手动将log4j.properties或log4j.xml移动到根目录下,但这么做,项目简略还行,如果是大型项目,需求加载许多配置文件时,仍是恨费事也简单出问题的。因而并不引荐。

解决办法2:引荐办法
  新建JUnit4ClassRunner类:
 public class JUnit4ClassRunner extends SpringJUnit4ClassRunner {
 static {
 try {
 Log4jConfigurer.initLogging("classpath:com/config/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:com/config/springConfig.xml")
@Transactional
@TransactionConfiguration(transactionManager = "transactionManager", defaultRollback = true)
public class TestHibernate {

  这样,在发动Junit测验时,spring就会加载log4j了。并且坚持了灵活性。

  PS:Junit加载spring的runner(SpringJUnit4ClassRunner)要优先于spring加载log4j,因而选用一般办法,无法完成spring先加载log4j后被Junit加载。所以咱们需求新建JUnit4ClassRunner类,修正SpringJUnit4ClassRunner加载log4j的战略。这样加载log4j就会优先于加载spring了。
版权声明
本文来源于网络,版权归原作者所有,其内容与观点不代表亚美娱乐立场。转载文章仅为传播更有价值的信息,如采编人员采编有误或者版权原因,请与我们联系,我们核实后立即修改或删除。

猜您喜欢的文章

阅读排行

  • 1

    记一次线程池的运用ITeye

    线程,运用,行列
  • 2
  • 3
  • 4
  • 5
  • 6

    Digester 解析XMLITeye

    元素,参数,解析
  • 7

    运用文件体系ITeye

    目录,读取,是否
  • 8
  • 9
  • 10

    Deep diving into CloningITeye

    文章,摘自,首先