Вызвать тесты классов из другого проекта Maven - PullRequest
5 голосов
/ 29 ноября 2010

У меня есть 2 проекта maven, один для источников: ProjSource , содержащий один класс: Class-A .. и другой: ProjTest , содержащийтестовый класс для класса A с именем Class-A-Test .Я хочу, чтобы мой тестовый класс запускался при вызове mvn: install в ProjSource.

Какой самый простой способ выполнить это?обратите внимание, что мой опыт работы с модульными тестами очень прост. Я не знаю, как сказать Maven, что Class-A-Test предназначен для тестирования Class-A ..

Я выполнил шаги, описанные с использованием maven.-jar-плагин с test-jar Цель здесь и определение результирующего ******* -tests.jar как зависимость для ProjSource с:

<type>test-jar</type>
<scope>test</scope>

, но когда я запускаю mvn: install, вывод говорит, что: "Нет тестов длябежать ".Я что-то пропустил?

Любая помощь очень важна, и большое спасибо заранее!

С уважением,

1 Ответ

3 голосов
/ 29 ноября 2010
  1. не делай так. Лучший способ сделать это - иметь стандартные источники в src/main/java и тестовые источники в src/test/java. По умолчанию в результирующий JAR будут добавлены стандартные источники, а тесты в dir тестового источника будут выполняться автоматически. Это хорошо проверенное поведение, зачем его менять? Если вам нужен / нужен тестовый jar, вызовите jar: test-jar в pom.xml этого проекта и используйте плагин buildhelper, чтобы присоединить полученный артефакт для развертывания. Таким образом, вы можете сохранить стандартный макет проекта и при этом иметь тестовую банку.

  2. если вы будете настаивать на этом, вам придется сделать это наоборот. Тестовый проект должен иметь зависимость от основного проекта (вы не можете протестировать то, чего не знаете). Я бы предложил просто поместить тестовый код в src/test/java в тестовом проекте, тогда магия maven может работать по умолчанию. Вставьте жирный текст сверху и здесь.

Но причина, по которой жизненный цикл maven был определен таким, каким он был, заключается в том, что неудачные тесты должны были проваливать сборку. Нет смысла строить библиотеку, которая не делает то, что должна.

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