2016-11-22 78 views
1

在運行自動化測試案例爲RCP應用程序中,示出以下錯誤:java.lang.NoClassDefFoundError:的junit /框架/ TestListener

[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已經在classpath中可用。

我用於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)

+0

請注意,這裏[並不急於爲志願者](http://meta.stackoverflow.com/q/326569)來處理您的問題。如果他們想回答,他們會在閒暇時這樣做。 – halfer

回答

0

在Eclipse 4.5( https://bugs.eclipse.org/bugs/show_bug.cgi?id=485620)中的某個問題上完成了一些工作。

將Eclipse更新到4.6可能會有所幫助。

+0

沒有其他方法沒有更新到4.6的Eclipse? –

+0

我不知道。只是說這可能會解決你的問題和更新eclipse大多不是什麼大不了的事情。 –

+0

我將eclipse更新到了4.6.2,但是我在運行ant的測試用例時仍然有相同的錯誤。 –

0

這可能是也可能不是一個答案......

我的經驗是,對於我們的PDE構建爲Eclipse 4.4.1,我們使用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 - 所以我只是將4.6.2測試框架的3.6測試框架添加到用於我們的測試的Eclipse平臺的dropins文件夾中。我們有兩套測試,當運行第二套測試時,它會給我帶來java.lang.ClassNotFoundException: junit.framework.TestListener cannot be found by org.apache.ant_1.9.6.v201510161327例外。我猜想這是與添加/解析哪些插件以及它們爲此緩存的依賴性和配置有關。所以我改變了我們的螞蟻測試目標,以清除eclipse/p2eclipse/configuration目錄,並在運行每個套件之前重新制作一份副本。這肯定是一個徹頭徹尾的破解,但它似乎工作。