在运行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已在classpath中可用。
我用于RCP应用程序的Eclipse版本是Eclipse 4.5.2(火星)和Junit版本是Junit 4.12.0(org.junit_4.12.0.v201504281640)。使用的蚂蚁版本为1.9.6(org.apache.ant_1.9.6.v201510161327)
在Eclipse 4.5中的问题上完成了一些工作(https://bugs.eclipse.org/bugs/show_bug.cgi?id=485620)。
将日食更新为4.6可能会有所帮助。
这可能是答案或可能不是答案...
我的经验是,对于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下载下载)。这给了我另一个问题,在该问题中找不到org.eclipse.test_3.3.0/library.xml
文件 - 此用法需要 - 因此,我刚刚添加了3.6测试框架和 4.6.2测试框架在Eclipse平台的Dropins文件夹中用于我们的测试。我们有两个测试套件,在运行第二个套件时,它会给我java.lang.ClassNotFoundException: junit.framework.TestListener cannot be found by org.apache.ant_1.9.6.v201510161327
例外。我猜想这与添加/解决的插件以及其依赖关系和配置有关。因此,我更改了我们的蚂蚁测试目标以清除eclipse/p2
和eclipse/configuration
目录,并在运行每个套件之前先复制。这肯定是一个完全的黑客,但似乎有效。