Junit单元测试Classpath配置

配置单元测的Classpath时的一个比较奇怪的问题:

首先看一下单元测试的Classpath配置:eclipse编辑器右键点击->Run As...->Run Configurations->Classpath标签页如下:

Junit单元测试Classpath配置_第1张图片

                                                                                                                       图1

从图1可以看出,TestCase的Classpath配置分为两部分:

    Bootstrap Entries 是 Jre类库;

    User Entries 是用户配置的第三方类库,同时这里又包括项目的类库,即Default Classpath,其是项目Build Path的所有Jar包。及TestCase使用到的其它Jar包。

    我进行单元测试时发现了一个比较奇怪的问题,即在User Entries 根下配置Log4j.jar包时如果其在项目的Default Classpath上边时单元测试用例不会报异常,如图2:

Junit单元测试Classpath配置_第2张图片 

                                                                                                                    图2

但是如果把Log4j.jar移到项目的Default Classpath下边(如图3)时会有异常如下图4.

Junit单元测试Classpath配置_第3张图片

                                                                                                                               图3

Caused by: java.lang.NoSuchMethodError: org.apache.log4j.Logger.trace(Ljava/lang/Object;)V
	at org.jbpm.internal.log.Log4jLog.trace(Log4jLog.java:74)
	at org.jbpm.pvm.internal.wire.xml.WireParser.<clinit>(WireParser.java:283)
	at org.jbpm.pvm.internal.cfg.ConfigurationParser.<init>(ConfigurationParser.java:46)
	at org.jbpm.pvm.internal.cfg.ConfigurationParser.<clinit>(ConfigurationParser.java:49)
	at org.jbpm.pvm.internal.cfg.ConfigurationImpl.parse(ConfigurationImpl.java:139)
	at org.jbpm.pvm.internal.cfg.ConfigurationImpl.setResource(ConfigurationImpl.java:118)
	at org.jbpm.pvm.internal.processengine.SpringHelper.createProcessEngine(SpringHelper.java:47)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
	at java.lang.reflect.Method.invoke(Method.java:597)
	at org.springframework.beans.factory.support.SimpleInstantiationStrategy.instantiate(SimpleInstantiationStrategy.java:115)
	... 39 more

                                                                                                                           图4

    这究竟是怎么回事呢?

     

 

 

你可能感兴趣的:(java,log4j,单元测试,JUnit,jbpm)