Eclipse plugin 在以Junit插件测试的形式运行测试用例时,没有可运行的方法

Eclipse plugin 在以Junit插件测试的形式运行测试用例时,没有可运行的方法,eclipse-plugin,junit4,Eclipse Plugin,Junit4,我已经为eclipse RCP应用程序创建了测试用例: @Test public final void testIsCacertsFileExist() { try {//URL url = new URL("https://server/web/services/WO"); // System.out.println(url.getPort()); URL url1 = new URL("http://server/web/services/WO"); Syst

我已经为eclipse RCP应用程序创建了测试用例:

@Test
public final void testIsCacertsFileExist() {
    try {//URL url = new URL("https://server/web/services/WO");
    // System.out.println(url.getPort());
    URL url1 = new URL("http://server/web/services/WO");
    System.out.println(url1.getPort());
    CertificateHandler.addCertToKeyStore(
        "http://server/web/services/WO");", 443);
    File file = new File("cacerts");
    Assert.assertTrue(file.exists());
    readCertificates(file);
} catch (ConnectionException e) {
    fail(e.getMessage());
} catch (MalformedURLException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
}
}
我正在使用
@Test
注释。 在Eclipse中,我正在运行Junit插件测试。 但我还是发现了以下错误:

java.lang.Exception: No runnable methods
    at org.junit.runners.BlockJUnit4ClassRunner.validateInstanceMethods(BlockJUnit4ClassRunner.java:177)
    at org.junit.runners.BlockJUnit4ClassRunner.collectInitializationErrors(BlockJUnit4ClassRunner.java:122)
    at org.junit.runners.ParentRunner.validate(ParentRunner.java:269)
    at org.junit.runners.ParentRunner.<init>(ParentRunner.java:66)
    at org.junit.runners.BlockJUnit4ClassRunner.<init>(BlockJUnit4ClassRunner.java:58)
    at org.junit.internal.builders.JUnit4Builder.runnerForClass(JUnit4Builder.java:13)
    at org.junit.runners.model.RunnerBuilder.safeRunnerForClass(RunnerBuilder.java:57)
    at org.junit.internal.builders.AllDefaultPossibilitiesBuilder.runnerForClass(AllDefaultPossibilitiesBuilder.java:29)
    at org.junit.runners.model.RunnerBuilder.safeRunnerForClass(RunnerBuilder.java:57)
    at org.junit.internal.requests.ClassRequest.getRunner(ClassRequest.java:24)
    at org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.<init>(JUnit4TestReference.java:33)
    at org.eclipse.jdt.internal.junit4.runner.JUnit4TestClassReference.<init>(JUnit4TestClassReference.java:25)
    at org.eclipse.jdt.internal.junit4.runner.JUnit4TestLoader.createTest(JUnit4TestLoader.java:48)
    at org.eclipse.jdt.internal.junit4.runner.JUnit4TestLoader.loadTests(JUnit4TestLoader.java:38)
    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.PlatformUITestHarness$1.run(PlatformUITestHarness.java:47)
    at org.eclipse.swt.widgets.RunnableLock.run(RunnableLock.java:35)
    at org.eclipse.swt.widgets.Synchronizer.runAsyncMessages(Synchronizer.java:135)
    at org.eclipse.swt.widgets.Display.runAsyncMessages(Display.java:4140)
    at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3757)
    at org.eclipse.ui.internal.Workbench.runEventLoop(Workbench.java:2701)
    at org.eclipse.ui.internal.Workbench.runUI(Workbench.java:2665)
    at org.eclipse.ui.internal.Workbench.access$4(Workbench.java:2499)
    at org.eclipse.ui.internal.Workbench$7.run(Workbench.java:679)
    at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:332)
    at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:668)
    at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:149)
    at com.ibm.stp.Application.start(Application.java:70)
    at org.eclipse.pde.internal.junit.runtime.NonUIThreadTestApplication.runApp(NonUIThreadTestApplication.java:54)
    at org.eclipse.pde.internal.junit.runtime.UITestApplication.runApp(UITestApplication.java:41)
    at org.eclipse.pde.internal.junit.runtime.NonUIThreadTestApplication.start(NonUIThreadTestApplication.java:48)
    at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:196)
    at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:110)
    at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:79)
    at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:344)
    at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:179)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
    at java.lang.reflect.Method.invoke(Method.java:597)
    at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:622)
    at org.eclipse.equinox.launcher.Main.basicRun(Main.java:577)
    at org.eclipse.equinox.launcher.Main.run(Main.java:1410)
    at org.eclipse.equinox.launcher.Main.main(Main.java:1386)
java.lang.Exception:没有可运行的方法
位于org.junit.runners.BlockJUnit4ClassRunner.validateInstanceMethods(BlockJUnit4ClassRunner.java:177)
位于org.junit.runners.BlockJUnit4ClassRunner.collectInitializationErrors(BlockJUnit4ClassRunner.java:122)
位于org.junit.runners.ParentRunner.validate(ParentRunner.java:269)
在org.junit.runners.ParentRunner上(ParentRunner.java:66)
位于org.junit.runners.BlockJUnit4ClassRunner。(BlockJUnit4ClassRunner.java:58)
位于org.junit.internal.builders.JUnit4Builder.runnerForClass(JUnit4Builder.java:13)
位于org.junit.runners.model.RunnerBuilder.safeRunnerForClass(RunnerBuilder.java:57)
位于org.junit.internal.builders.AllDefaultPossibilityBuilder.runnerForClass(AllDefaultPossibilityBuilder.java:29)
位于org.junit.runners.model.RunnerBuilder.safeRunnerForClass(RunnerBuilder.java:57)
位于org.junit.internal.requests.ClassRequest.getRunner(ClassRequest.java:24)
位于org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference。(JUnit4TestReference.java:33)
位于org.eclipse.jdt.internal.junit4.runner.JUnit4TestClassReference。(JUnit4TestClassReference.java:25)
位于org.eclipse.jdt.internal.junit4.runner.JUnit4TestLoader.createTest(JUnit4TestLoader.java:48)
位于org.eclipse.jdt.internal.junit4.runner.JUnit4TestLoader.loadTests(JUnit4TestLoader.java:38)
位于org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:452)
位于org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:683)
位于org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:390)
位于org.eclipse.pde.internal.junit.runtime.remotepluginterstrunner.main(remotepluginterstrunner.java:62)
位于org.eclipse.pde.internal.junit.runtime.PlatformUITestHarness$1.run(PlatformUITestHarness.java:47)
位于org.eclipse.swt.widgets.RunnableLock.run(RunnableLock.java:35)
位于org.eclipse.swt.widgets.Synchronizer.runasynchmessages(Synchronizer.java:135)
在org.eclipse.swt.widgets.Display.runAsyncMessages(Display.java:4140)上
在org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3757)上
位于org.eclipse.ui.internal.Workbench.runEventLoop(Workbench.java:2701)
位于org.eclipse.ui.internal.Workbench.runUI(Workbench.java:2665)
访问org.eclipse.ui.internal.Workbench.access$4(Workbench.java:2499)
位于org.eclipse.ui.internal.Workbench$7.run(Workbench.java:679)
位于org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:332)
位于org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:668)
位于org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:149)
位于com.ibm.stp.Application.start(Application.java:70)
位于org.eclipse.pde.internal.junit.runtime.NonUIThreadTestApplication.runApp(NonUIThreadTestApplication.java:54)
位于org.eclipse.pde.internal.junit.runtime.UITestApplication.runApp(UITestApplication.java:41)
位于org.eclipse.pde.internal.junit.runtime.NonUIThreadTestApplication.start(NonUIThreadTestApplication.java:48)
在org.eclipse.equinox.internal.app.eclipseeapphandle.run上(eclipseeapphandle.java:196)
位于org.eclipse.core.runtime.internal.adapter.eclipseeappluncher.runApplication(eclipseeappluncher.java:110)
位于org.eclipse.core.runtime.internal.adapter.eclipseeappluncher.start(eclipseeappluncher.java:79)
位于org.eclipse.core.runtime.adapter.EclipseStarter.run(EclipseStarter.java:344)
位于org.eclipse.core.runtime.adapter.EclipseStarter.run(EclipseStarter.java:179)
在sun.reflect.NativeMethodAccessorImpl.invoke0(本机方法)处
位于sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
在sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)中
位于java.lang.reflect.Method.invoke(Method.java:597)
位于org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:622)
位于org.eclipse.equinox.launcher.Main.basicRun(Main.java:577)
位于org.eclipse.equinox.launcher.Main.run(Main.java:1410)
位于org.eclipse.equinox.launcher.Main.Main(Main.java:1386)

此代码本身是否也包含在测试插件或插件片段(扩展要测试的插件)中?对于插件测试,您不能在普通Java项目中只有一个Java类。

此代码本身是否也包含在测试插件或插件片段(扩展待测试插件)中?您不能在普通Java项目中使用Java类进行插件测试。

以下是我问题的解决方案。 我从工作区中删除项目。从存储库中新建签出代码。 类路径中添加了junit-4.3.1.jar。 在依赖项选项卡中打开plugin.xml。在“所需插件”下,单击“添加”按钮 键入搜索org.junit。在myeclipse(Indigo)org.junit(4.8.2.v4_8_2_v20110321-1705)中添加最新的一个,它显示为org.junit(4.8.2)

文件中的修改: .classpath-添加了“junit-4.3.1.jar”条目 MANIFEST.MF-Require Bundle:,org.junit;由于plugin.xml中的更改,已添加bundle version=“4.8.2”

谢谢,
Anand

这是我问题的答案。 我从工作区中删除项目。从存储库中新建签出代码。 类路径中添加了junit-4.3.1.jar。 在依赖项选项卡中打开plugin.xml。在“所需插件”下,单击“添加”按钮 键入搜索org.junit。在myeclipse(Indigo)org.junit(4.8.2.v4_8_2_v20110321-1705)中添加最新的一个,它显示为org.junit(4.8.2)

文件中的修改: .classpath-添加了“junit-4.3.1.jar”条目 MANIFEST.MF-Require Bundle:,org.junit;由于plugin.xml中的更改,已添加bundle version=“4.8.2”

谢谢,
A和

这是正常的测试等级,但不包括