ClassNotFoundException:org.eclipse.xtext.junit_2.4.3.v201309030823找不到junit.framework.TestCase

Aar*_*lla 14 java eclipse junit4 xtext

我对这个错误感到困惑:

java.lang.NoClassDefFoundError: junit/framework/TestCase
    at java.lang.ClassLoader.defineClass1(Native Method)
    at java.lang.ClassLoader.defineClass(ClassLoader.java:792)
    at org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader.defineClass(DefaultClassLoader.java:188)
    at org.eclipse.osgi.baseadaptor.loader.ClasspathManager.defineClassHoldingLock(ClasspathManager.java:638)
...
    at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.loadClass(RemoteTestRunner.java:693)
    at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.loadClasses(RemoteTestRunner.java:429)
    at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:452)
    at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:683)
    at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:390)
    at org.eclipse.pde.internal.junit.runtime.RemotePluginTestRunner.main(RemotePluginTestRunner.java:62)
    at org.eclipse.pde.internal.junit.runtime.CoreTestApplication.run(CoreTestApplication.java:23)
...
Caused by: java.lang.ClassNotFoundException: junit.framework.TestCase cannot be found by org.eclipse.xtext.junit_2.4.3.v201309030823
    at org.eclipse.osgi.internal.loader.BundleLoader.findClassInternal(BundleLoader.java:501)
    at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:421)
    at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:412)
    at org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader.loadClass(DefaultClassLoader.java:107)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
    ... 78 more
Run Code Online (Sandbox Code Playgroud)

当我将Xtext DSL的测试作为插件测试运行时(例如,在内部启动新的Eclipse平台时)会发生异常.这我的任何代码执行之前发生.

当我查看插件依赖项时,我可以看到它org.junit_4.11.0.v201303080030.jar在类路径上,我也看到了/.../workspace/.metadata/.plugins/org.eclipse.pde.core/.external_libraries/org.junit_4.11.0.v201303080030/junit.jar

所以OSGis绝对应该能够解决这种依赖.

Xtext 2.4.3是否可以与JUnit 4.11一起使用,还是必须将Eclipse安装降级为JUnit 4.10?

A P*_*aul 6

两点

第一

检查你的Project Properties->Java Build Path->Libraries (tab).JUnit应该在那里,虽然这通常会出现在构建中.

检查你的项目Run Configurations->JUnit->Classpath (tab).JUnit应该在您的项目的用户条目下.

第二

检查你有以下插件

org.eclipse.xtext.xbase.junit
org.junit (3.8.2)
org.junit (4.8.2)
Run Code Online (Sandbox Code Playgroud)

[编辑]这让我走上正轨.要修复错误,请确保在目标平台中安装了org.junit 3.8 !

说明:上述错误意味着Eclipse本身无法启动.似乎JUnit运行器依赖于JUnit 3.8.它不会被使用但没有它,整个平台都无法初始化.

您可以通过查看堆栈跟踪来查看是否存在相同的问题:它是否包含RemotePluginTestRunner.main

要修复错误,请将org.junit 3.8软件包添加到目标平台.