无法从Eclipse插件运行JUnit测试

时间:2017-02-08 12:35:38

标签: java eclipse plugins junit

我正在尝试从Eclipse插件运行一些JUnit 4测试,但我只会遇到以下故障:

  

initializationError(testpkg.TestClass):没有可运行的方法

测试课非常简单:

package testpkg;
(...)
public class TestClass {
    @Test
    public void test() {
        System.out.println("Test run");
        Assert.assertTrue(true);
    }
}

当我在一个简单的java项目中以编程方式运行它时,它可以工作,但不能在Eclipse插件中运行:

    public class DiscoverHandler extends AbstractHandler {
        @Override
        public Object execute(ExecutionEvent event) throws ExecutionException {
            (...)
            File file = new File("C:(...)\\target\\test-classes"); //The .class file
            URLClassLoader classLoader = new URLClassLoader(new URL[] file.toURI().toURL()});
            JUnitCore.runClasses(classLoader.loadClass("testpkg.TestClass")).getFailures().forEach(c -> System.out.println(c.toString()));
        }
    }

简单Java项目中的相同代码实际上会打印“Test run”字符串。

有谁知道这个错误可能来自哪里? 谢谢

1 个答案:

答案 0 :(得分:1)

我终于设法做到了这一点:

URLClassLoader classLoader = new URLClassLoader(new URL[]{file.toURI().toURL()}, this.getClass().getClassLoader());

而不是:

URLClassLoader classLoader = new URLClassLoader(new URL[] file.toURI().toURL()});

我无法解释为什么这样做有效。如果有人有答案,我很乐意知道。