Запускать Junit-тесты из нескольких проектов удобно быстро в Eclipse
Есть ли способ запустить JUnit-Tests из нескольких проектов удобно быстро в Eclipse?
JUnit-Runner позволяет вам определить пакет или папку, из которой выполняются все содержащиеся в ней тесты.
Есть ли способ сделать это с помощью тестов из нескольких проектов в Eclipse? Желательно, чтобы это было через Junit-Runner. Если есть какой-то способ сделать это быстро с помощью Ant-задания (так что не зависите от полной сборки с помощью ant), это было бы неплохо.
4 ответа
Вы не можете сделать это через пользовательский интерфейс. Глядя на точки расширения, для элемента JUnit самого высокого уровня будет собираться проект. Я полагаю, что вы могли бы написать плагин для добавления дополнительного элемента / ярлыка контекста для рабочего набора, сделать рабочие наборы элементами верхнего уровня в проводнике пакетов и сгруппировать проекты, которые вы хотите протестировать вместе, под этим рабочим набором. Проблемы с этим заключаются в том, что у вас будут проблемы с определением правил контекста для включения / выключения вклада "запуск от имени", и я не уверен, что семантика распространяется на рабочие наборы. Поэтому вам нужно написать какую-нибудь оболочку для итерации содержащихся проектов и сбора их типов тестов. Это кажется интересной маленькой проблемой. Я мог бы поиграть с этим после школы сегодня.
Другой (немного менее) хакерский способ - создать другой проект с зависимостями проекта от всех ваших целевых проектов, а затем использовать связанные ресурсы, чтобы перенести все типы тестов в новый проект (ранее я опубликовал ответ, в котором описано, как связать источники по проектам). Конечно, если вы сделаете это, вам также понадобится управлять зависимостями тестового проекта.
Если вы создаете TestSuite для каждого проекта и еще один uber TestSuite, который ссылается на все наборы проектов, вы должны проверить, включен ли каждый тест, который подвержен ошибкам.
Если вам не нравится заглядывать в плагины или связанные ресурсы, вам лучше всего использовать Ant.
На самом деле довольно просто выполнять тесты JUnit для нескольких проектов из Eclipse. Посмотрите на Classpath Suite. Это не относится к стандартному раннеру JUnit, но вы не упомянули, откуда появилось это требование, поэтому я не уверен, повлияет ли это на вас.
Вся информация об использовании находится на этой странице, но в итоге:
- Создайте проект Eclipse в зависимости от всех проектов, которые вы хотите протестировать.
Напишите простой набор тестов, включающий все:
@RunWith(ClasspathSuite.class) public class MySuite {}
Вы можете определить отдельный проект, который зависит от других проектов, который содержит набор, ссылающийся на отдельные тесты или наборы из разных проектов. Что-то вроде этого:
@RunWith(Suite.class)
@Suite.SuiteClasses( { FirstProjectSuite.class, SecondProjectSuite.class} )
public class AllSuites { }
Я не уверен, что вы не можете сделать это из пользовательского интерфейса, но из ant это возможно, даже если вы не создаете свои плагины, используя ant. Тем не менее, этот метод не так тривиален, но как только он будет настроен, все будет круто; о)
Проверьте здесь для получения дополнительной информации:
http://www.eclipse.org/articles/article.php?file=Article-PDEJUnitAntAutomation/index.html