java.lang.NoClassDefFoundError:junit / framework / TestListener

时间:2016-11-22 06:48:12

标签: junit ant eclipse-rcp hudson

在为RCP应用程序运行自动化测试用例时,显示以下错误:

[java] Java Result: 13

堆栈跟踪是:

    !MESSAGE Application error
    !STACK 1
    java.lang.NoClassDefFoundError: junit/framework/TestListener
        at java.lang.ClassLoader.defineClass1(Native Method)
        at java.lang.ClassLoader.defineClass(ClassLoader.java:763)
        at org.eclipse.osgi.internal.loader.ModuleClassLoader.defineClass(ModuleClassLoader.java:272)
        at org.eclipse.osgi.internal.loader.classpath.ClasspathManager.defineClass(ClasspathManager.java:632)
        at org.eclipse.osgi.internal.loader.classpath.ClasspathManager.findClassImpl(ClasspathManager.java:588)
        at org.eclipse.osgi.internal.loader.classpath.ClasspathManager.findLocalClassImpl(ClasspathManager.java:540)
        at org.eclipse.osgi.internal.loader.classpath.ClasspathManager.findLocalClass(ClasspathManager.java:527)
        at org.eclipse.osgi.internal.loader.ModuleClassLoader.findLocalClass(ModuleClassLoader.java:324)

...

    Caused by: java.lang.ClassNotFoundException: junit.framework.TestListener cannot be found by org.apache.ant_1.9.6.v201510161327
    at org.eclipse.osgi.internal.loader.BundleLoader.findClassInternal(BundleLoader.java:439)
    at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:352)
    at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:344)
    at org.eclipse.osgi.internal.loader.ModuleClassLoader.loadClass(ModuleClassLoader.java:160)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
    ... 53 more

Junit.jar已在类路径中可用。

我用于RCP应用程序的Eclipse版本是Eclipse 4.5.2(Mars),Junit版本是junit 4.12.0(org.junit_4.12.0.v201504281640)。使用的ANT版本是1.9.6(org.apache.ant_1.9.6.v201510161327)

2 个答案:

答案 0 :(得分:0)

Eclipse 4.5中的一个问题已经完成了一些工作( https://bugs.eclipse.org/bugs/show_bug.cgi?id=485620)。

将Eclipse更新为4.6可能会有所帮助。

答案 1 :(得分:0)

这可能是也可能不是答案......

我的经验是,对于Eclipse 4.4.1的PDE构建,我们使用的是eclipse-test-framework-3.6。升级到Eclipse 4.6.2时,我将其更改为使用eclipse-test-framework-4.6.2(从4.6.2 - Eclipse Project Downloads下载)。这给了我另一个问题,即找不到org.eclipse.test_3.3.0/library.xml文件 - this usage需要 - 所以我只是添加了3.6测试框架 4.6.2测试用于我们测试的Eclipse平台的dropins文件夹的框架。我们有两套测试,当运行第二套测试时,它会给我java.lang.ClassNotFoundException: junit.framework.TestListener cannot be found by org.apache.ant_1.9.6.v201510161327例外。我猜这与添加/解析的插件以及为此缓存的依赖项和配置有关。所以我更改了我们的ant测试目标,以清除eclipse/p2eclipse/configuration目录,并在运行每个套件之前获取一份新的副本。这肯定是完全黑客攻击,但它似乎有效。