Проблема с использованием JUnit4TestAdapter из контекста плагина eclipse - PullRequest
1 голос
/ 25 февраля 2010

Я пытаюсь создать очень простой плагин Eclipse.

Я хочу запустить текущий выбранный контрольный пример, используя мой инструмент с помощью JUnit4TestAdapter.

Когда я запускаю внешнее затмение, используя "main" с "параметрами", все просто отлично.

Когда я вызываю "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)

Есть идеи, что на самом деле идет не так? Почему BlockJUnit4ClassRunner решает выдать исключение, если запуск за пределами затмения ему подходит для данного теста? Кстати, настоящий тест - JUnit 3.8 (в отличие от JUnit4)

1 Ответ

3 голосов
/ 25 февраля 2010

«Нет запускаемых методов» означает, что JUnit не смог найти никаких тестируемых методов. Для JUnit 3 это методы, начинающиеся с testXXX(); для JUnit 4 это методы, помеченные @Test.

JUnit не запускает "основные" методы, если вы не используете JUnit 4, а основной метод имеет аннотацию @Test (что довольно плохо).

Если ваши методы имеют эти правильные аннотации и Eclipse по-прежнему выдает то же исключение, это может быть результатом более глубокой проблемы с classpath или конфигурацией.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...