Подтвердить что ты не робот

Запустите Junit-Tests из нескольких проектов, которые быстро работают в Eclipse

Есть ли способ запустить JUnit-Tests из нескольких проектов, удобно быстро работающих в Eclipse?

JUnit-Runner позволяет вам определить пакет или папку, в которой выполняются все содержащиеся тесты.

Есть ли способ сделать это с помощью тестов из нескольких проектов внутри Eclipse? Предпочтительно, это должно быть через Junit-Runner. Если есть способ быстро выполнить это с помощью Ant -job (так что не зависеть от полной сборки с ant), это тоже было бы приятно.

4b9b3361

Ответ 1

Вы не можете сделать это через пользовательский интерфейс. Рассматривая точки расширения, элемент самого высокого уровня, который будет собираться Юнитом, - это проект. Я полагаю, вы могли бы написать плагин, чтобы внести дополнительный контекстный элемент/ярлык для рабочего набора, заставить рабочие наборы элементов верхнего уровня в проводнике пакетов и сгруппировать проекты, которые вы хотите протестировать вместе ниже этого рабочего набора. Проблемы с этим вы столкнулись бы с проблемой определения контекстных правил для включения/отключения вклада "run as", и я не уверен, что семантика распространяется на рабочие наборы. Поэтому вам придется написать какую-то оболочку для повторения содержащихся проектов и сбора их типов тестов. Это кажется интересной небольшой проблемой. Сегодня я мог бы поиграть с ним после школы.

Другим (немного меньшим) хакерским способом было бы создать другой проект с зависимостями проекта от всех ваших целевых проектов, а затем использовать связанные ресурсы, чтобы привести все типы тестов в новый проект (я разместил answer до этого описывает, как связывать источники в проектах). Конечно, если вы это сделаете, вам также нужно будет управлять зависимостями тестового проекта.

Если вы создаете TestSuite для каждого проекта и другого uber TestSuite, который ссылается на все комплекты проектов, вы должны проверить, что каждый тест включен, что является подверженным ошибкам.

Если вы не хотите сбрасывать с помощью плагинов или связанных ресурсов, вам, вероятно, лучше всего использовать Ant.

Ответ 2

На самом деле довольно легко выполнить тесты JUnit для нескольких проектов из Eclipse. Посмотрите Classpath Suite. Это не со стандартным бегуном JUnit, но вы не указали, откуда взялось это требование, поэтому я не уверен, повлияет ли это на вас.

Вся информация об использовании находится на этой странице, но для подведения итогов:

  • Создайте проект Eclipse в зависимости от всех проектов, которые вы хотите проверить.
  • Напишите простой набор тестов, включая все:

    @RunWith(ClasspathSuite.class)  
    public class MySuite {}
    

Ответ 3

Вы можете определить отдельный проект, который зависит от других проектов, который содержит набор, относящийся к отдельным тестам или наборам из разных проектов. Что-то вроде этого:

@RunWith(Suite.class)
@Suite.SuiteClasses( { FirstProjectSuite.class, SecondProjectSuite.class} )
public class AllSuites { }

Ответ 4

Я не уверен, что вы не можете сделать это из UI, но из ant это возможно, даже если вы не создаете свои плагины с помощью ant. Тем не менее этот метод не настолько тривиальный, но как только он настроен, все круто: o)

Подробнее здесь:

http://www.eclipse.org/articles/article.php?file=Article-PDEJUnitAntAutomation/index.html