JUnitLaunchShortcut с несколькими тестами классов - PullRequest
1 голос
/ 11 ноября 2011

Когда я выполняю этот фрагмент кода:

Object[] segments = new Object[2];
segments[0] = // JUnit Test Class 1
segments[1] = // JUnit Test Class 2

TreePath treepath = new TreePath(segments);
TreeSelection treeselection = new TreeSelection(treepath);

JUnitLaunchShortcut j = new JUnitLaunchShortcut();
j.launch(treeselection, ILaunchManager.RUN_MODE);

Плагин Eclipse / JUnit выполняет только JUnit Test Class 2 , возможно, выполняет два класса Test, но только показывает в JUnit.последний тестовый класс (может быть) ....

Что вы думаете?Как я могу «запустить» весь тестовый класс?

1 Ответ

1 голос
/ 15 ноября 2011

Как вы говорите в своем комментарии, плагин JUnit для eclipse не поддерживает множественный выбор в конфигурации. Однако org.eclipse.jdt.junit.launcher.JUnitLaunchConfigurationDelegate поддерживает запуск нескольких тестов. Когда вы выбираете проект / пакет / тестовый класс в плагине JUnit и выбираете «Выполнить как тест JUnit», он передает конфигурацию в JUnitLaunchConfigurationDelegate, где он оценивает тесты, которые должны быть выполнены. Если он есть, он вызывает RemoteTestRunner следующим образом:

RemoteTestRunner -test TestClass

Если он находит более одного файла, он работает так:

RemoteTestRunner -testfile testNamesxxxx.txt

где testNamesxxx.test - это файл, который содержит список тестов для запуска, например:

uk.co.farwell.junit.parameters.ParameterTest
uk.co.farwell.junit.run.AllTests
uk.co.farwell.junit.run.Class1Test

Этот файл создан в вашем временном каталоге. Итак, один из возможных способов изучения - это расширить JUnitLaunchConfigurationDelegate и переопределить методvaluTests, который имеет сигнатуру:

protected IMember[] evaluateTests(ILaunchConfiguration configuration, IProgressMonitor monitor) throws CoreException {

И у вас осталось, как передать список тестов через ILaunchConfiguration, но вы можете расширить это и для своего плагина.

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