Java 从eclipse插件上下文使用JUnit4TestAdapter时出现问题

Java 从eclipse插件上下文使用JUnit4TestAdapter时出现问题,java,eclipse,junit,plugins,Java,Eclipse,Junit,Plugins,我正在尝试创建非常简单的eclipse插件 我想在JUnit4TestAdapter的帮助下使用我的工具运行当前选定的测试用例 当我在eclipse外部运行时,使用“main”和“parameters”一切都很好 当我在eclipse中使用相同的“参数”调用“main”(我正在为该调用创建单独的线程)时,我得到以下异常: java.lang.Exception: No runnable methods at org.junit.runners.BlockJUnit4ClassRunner.val

我正在尝试创建非常简单的eclipse插件

我想在JUnit4TestAdapter的帮助下使用我的工具运行当前选定的测试用例

当我在eclipse外部运行时,使用“main”和“parameters”一切都很好

当我在eclipse中使用相同的“参数”调用“main”(我正在为该调用创建单独的线程)时,我得到以下异常:

java.lang.Exception: No runnable methods
at org.junit.runners.BlockJUnit4ClassRunner.validateInstanceMethods(BlockJUnit4ClassRunner.java:171)
at org.junit.runners.BlockJUnit4ClassRunner.collectInitializationErrors(BlockJUnit4ClassRunner.java:115)
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:59)
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 junit.framework.JUnit4TestAdapter.<init>(JUnit4TestAdapter.java:31)
at junit.framework.JUnit4TestAdapter.<init>(JUnit4TestAdapter.java:24)
at util.JUnitTestRunner.runTest(JUnitTestRunner.java:26)
at master.Master.runTests(Master.java:180)
at master.Master.runTestsWithEquivalenceAnalysis(Master.java:207)
at master.Master.runInitialTests(Master.java:132)
at master.Master.run(Master.java:102)
at master.Master.runMutationTesting(Master.java:49)
java.lang.Exception:没有可运行的方法
位于org.junit.runners.BlockJUnit4ClassRunner.validateInstanceMethods(BlockJUnit4ClassRunner.java:171)
位于org.junit.runners.BlockJUnit4ClassRunner.collectInitializationErrors(BlockJUnit4ClassRunner.java:115)
位于org.junit.runners.ParentRunner.validate(ParentRunner.java:269)
在org.junit.runners.ParentRunner上(ParentRunner.java:66)
位于org.junit.runners.BlockJUnit4ClassRunner。(BlockJUnit4ClassRunner.java:59)
位于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)
位于junit.framework.JUnit4TestAdapter。(JUnit4TestAdapter.java:31)
位于junit.framework.JUnit4TestAdapter。(JUnit4TestAdapter.java:24)
在util.junitestrunner.runTest(junitestrunner.java:26)
在master.master.runTests(master.java:180)
在master.master.runTestsWithEquivalenceAnalysis(master.java:207)中
在master.master.runInitialTests(master.java:132)
运行(master.java:102)
在master.master.runMutationTesting(master.java:49)
知道吗,到底出了什么问题?为什么BlockJUnit4ClassRunner在eclipse之外运行时决定抛出异常?他对给定的测试没有问题?顺便说一句,实际测试是JUnit3.8(与JUnit4相反)

“无可运行方法”表示JUnit找不到任何可测试的方法。对于JUnit3,这是以
testXXX()
开头的方法;对于JUnit4,它是用
@Test
注释的方法

JUnit不运行“main”方法,除非您使用的是JUnit4,并且main方法具有
@Test
注释(这是非常糟糕的样式)

如果您的方法确实有这些正确的注释,并且Eclipse仍然抛出相同的异常,那么这可能是由于类路径或配置存在更深层次的问题造成的。

谢谢!“类路径或配置的更深层次的问题”通常是通过(间接)依赖关系在类路径的某个地方有另一个版本的JUnit。