Вызов JUnit из другого плагина Eclipse - PullRequest
1 голос
/ 09 ноября 2011

Я разрабатываю для Eclipse, и одной из функций является запуск тестов JUnit.Теперь мой плагин обнаруживает тесты JUnit для проекта в рабочей области, и после этого я хочу вызвать JUnit для выполнения этих тестов.

Я слышал о ILaunch, ILaunchConfigurationDelegate, JUnitLaunchConfigurationDelegate, но не могу найти пример этого, а также я 'Я не уверен, что мне придется это использовать!

- Заранее спасибо

Ответы [ 2 ]

2 голосов
/ 09 ноября 2011

Пожалуйста, посмотрите мой ответ на Как Eclipse фактически выполняет тесты Junit? .Вам нужно будет создать конфигурацию запуска, а затем вызвать JUnitLaunchConfigurationDelegate # launch () с конфигурацией.

Самый простой способ сделать это - добавить ярлыки к точке расширения org.eclipse.debug.ui.launchShortcuts.С правильной конфигурациейType вы можете создать правильный тип, и обычно Eclipse сделает все остальное.На самом деле это именно то, что мы сделали в Scala IDE .

Вот соответствующий XML из scala-ide:

<extension point="org.eclipse.debug.ui.launchShortcuts">
    <shortcut
          label="%JUnitShortcut.label"
          icon="$nl$/icons/full/obj16/julaunch.gif"
          helpContextId="org.eclipse.jdt.junit.launch_shortcut"
          class="org.eclipse.jdt.junit.launcher.JUnitLaunchShortcut"
          modes="run, debug"
          id="scala.tools.eclipse.scalatest.junitShortcut">
       <contextualLaunch>
          <enablement>
             <with variable="selection">
                <count value="1"/>
                <iterate>
                   <adapt type="org.eclipse.jdt.core.IJavaElement">
                      <test property="org.eclipse.debug.ui.matchesPattern" value="*.scala"/>
                      <test property="org.eclipse.jdt.core.isInJavaProject"/>
                      <test property="org.eclipse.jdt.core.hasTypeOnClasspath" value="junit.framework.Test"/>
                      <or>
                      <test property="scala.tools.eclipse.launching.canLaunchAsJUnit" forcePluginActivation="true"/>
                      <test property="scala.tools.eclipse.launching.junit.canLaunchAsJUnit" forcePluginActivation="true"/>
                      </or>
                   </adapt>
                </iterate>
             </with>
          </enablement>
       </contextualLaunch>
       <configurationType
             id="org.eclipse.jdt.junit.launchconfig">
       </configurationType>
       <description
             description="%DebugJUnitLaunchShortcut.description"
             mode="debug">
       </description>
       <description
             description="%RunJUnitLaunchShortcut.description"
             mode="run">
       </description>
    </shortcut>
</extension>

Важным элементом является , который определяет набор тестов, которые должны быть истинными, чтобы опциязапускать как JUnit, представленный пользователю.Большинство из них говорят сами за себя, но мы также scala.tools.eclipse.launching.canLaunchAsJUnit, который ссылается на точку расширения org.eclipse.core.expressions.propertyTesters.Эти тестеры свойств проверяют, может ли код быть запущен как JUnit или нет (например, тестируемый класс расширяет TestCase или что-либо еще).

Если вам нужна дополнительная информация, я рекомендую загрузить Scala IDE и глядя на код, но он написан на Scala.

0 голосов
/ 10 июня 2014

Я переписал часть сервисов launchche junit, затем сообщил проекту, что он вызывает отладку, и запустил.

См. Мою реализацию, чтобы вызвать JUnitLaunch

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