在为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)
答案 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/p2
和eclipse/configuration
目录,并在运行每个套件之前获取一份新的副本。这肯定是完全黑客攻击,但它似乎有效。