2014-01-25 4 views
4

У меня есть база данных, в которой хранятся результаты моих тестов. Мне интересно написать плагин для intellij13, который позволит мне перезапустить тестовые сбои из базы данных, используя конфигурацию запуска JUnit. Я не могу найти документацию по этому вопросу.Могу ли я запустить тест junit из плагина intellij

Я хотел бы видеть пример для какого-то метода, как:

public void runTest(String testClass, String testName) {...}

+0

[Как запустить JUnit тестов внутри моего Java-приложения?] (Http://stackoverflow.com/questions/2543912/how-do-i-run-junit-tests-from-inside -my-java-application) – kukido

+0

@kukido Мой вопрос не в том, чтобы запускать тесты JUnit программно в целом. Я хотел бы воспользоваться преимуществами запуска, которые intellij уже предоставляет. – munk

+0

Извиняюсь, плохой вопрос понимание. В прошлый раз я просмотрел доступную опцию в 12.x, и для создания конфигурации запуска JUnit не было открытых классов. Я не проверял 13.x, возможно, он стал более открытым. Я предлагаю получить исходный код для Community Edition и искать конфигурацию запуска JUnit. Пожалуйста, обновите вопрос, если найдете что-то интересное. – kukido

ответ

4

Я посмотрел в IntelliJ 13.x, и я смог создать конфигурацию выполнения JUnit. Вам нужно сделать следующее.

В вашем META-INF/plugin.xml добавить зависимость от плагина JUnit, в противном случае необходимые классы плагина JUnit не будут доступны в вашем загрузчике класса плагина.

<depends optional="false">JUnit</depends> 

Вот пример кода для создания конфигурации исполнения JUnit. Хотя это работает, это просто заглушка, вам нужно будет заполнить все атрибуты.

import com.intellij.execution.RunManager; 
import com.intellij.execution.impl.RunManagerImpl; 
import com.intellij.execution.impl.RunnerAndConfigurationSettingsImpl; 
import com.intellij.execution.junit.JUnitConfigurationType; 
import com.intellij.openapi.project.Project; 
... 
RunManagerImpl runManager = (RunManagerImpl) RunManager.getInstance(project); 
JUnitConfigurationType type = JUnitConfigurationType.getInstance(); 
RunnerAndConfigurationSettingsImpl runnerAndConfigurationSettings = (RunnerAndConfigurationSettingsImpl)runManager.createRunConfiguration("junit test run", type.getConfigurationFactories()[0]); 
runManager.addConfiguration(runnerAndConfigurationSettings, false); 

И вот мы идем, JUnit запускает конфигурацию.

enter image description here

+0

На самом деле я не вижу класса 'com.intellij.execution.junit.JUnitConfigurationType'. Не могли бы вы обновить свой ответ? Мне нужно запустить ** тестовый класс (класс, который имеет аннотацию @Test) **, используя его 'Virtual File' (или' PsiFile') в качестве входных данных моего модуля IntelliJ. – Emadpres

Смежные вопросы