eclipse-plugin - 运行作为 Junit 插件测试运行的测试用例时没有可运行的方法

标签 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");
    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 中,我正在运行 run as > Junit Plugin test。 我仍然遇到以下错误:

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)

最佳答案

这是我的问题的解决方案。 我从工作区中删除该项目。新创建并从存储库中 checkout 代码。 junit-4.3.1.jar 添加到类路径中。 在依赖选项卡中打开plugin.xml。在所需插件下单击添加按钮 输入搜索 org.junit。在我的 Eclipse (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;bundle-version="4.8.2"由于plugin.xml 中的更改而添加。

谢谢, 阿南德

关于eclipse-plugin - 运行作为 Junit 插件测试运行的测试用例时没有可运行的方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12157118/

相关文章:

java - 参数化测试检查构造函数是否抛出异常

java - 尝试在 2 个 Eclipse 插件之间传递类实例时抛出 LinkageError

java - 如何修复 eclipse 插件中的错误版本?

java - 为什么我的 Java 单元测试结果将预期结果与内存位置进行比较?

java - 当方法调用与执行时完全相同时,EasyMock 对象会抛出意外的方法调用

java - 使用 JMockit 和 JUnit4 测试 Spring JDBC

java - 为什么当我的 Eclipse 插件启动时没有触发/捕获 windowOpened 事件?

ruby - Eclipse DLTK 和 Ruby 快速调试器

java - eclipse - 如何删除文件菜单中的切换工作区 -

java - Junit 和消息框