Как заставить JBehave включать тестовые JAR-зависимости при работе в Maven?
У меня есть достаточно простой проект, который я пытаюсь протестировать с ядром JBehave, и делаю что-то в стиле maven-kosher (то есть производство в src/main, тестирование в src/test, интеграционное тестирование в добавленном путь к src/it/{java,resources} и тестовым зависимостям в рамках теста). Работать вместе, кажется, сложнее, чем должно быть.
Мой случай немного отличается, потому что мой код находится в src/it/java, а ресурсы в src/it/resources. Настроив их в Maven, Eclipse прекрасно справляется с историями - проблема в Maven.
В настоящее время моя проблема заключается в том, что он не видит mockito (или другие тестовые зависимости) при запуске (mvn -X). Даже редактирование рабочего примера и добавление тестовой зависимости не включает его.
Я смог заставить его работать, прикрепив свои тестовые зависимости в плагине xml блога плагина, но, очевидно, я не хочу повторяться.
Соответствующие части файла сборки (без ручного определения зависимости):
<testResources>
<testResource>
<directory>src/test/resources</directory>
<filtering>false</filtering>
<includes>
<include>**/*</include>
</includes>
</testResource>
<testResource>
<directory>src/it/resources</directory>
<filtering>false</filtering>
<includes>
<include>**/*</include>
</includes>
</testResource>
</testResources>
...
<plugin>
<groupId>org.jbehave</groupId>
<artifactId>jbehave-maven-plugin</artifactId>
<executions>
<execution>
<id>embeddable-stories</id>
<phase>integration-test</phase>
<configuration>
<includes>
<include>**/*Story.java</include>
</includes>
<ignoreFailureInStories>false</ignoreFailureInStories>
<ignoreFailureInView>false</ignoreFailureInView>
<scope>test</scope>
<testSourceDirectory>src/it/java</testSourceDirectory>
</configuration>
<goals>
<goal>run-stories-as-embeddables</goal>
</goals>
</execution>
</executions>
</plugin>
Идеи?
2 ответа
Плагин имеет свойство scope
который по умолчанию compile
Я полагаю, вы должны изменить его на test
, Проконсультируйтесь с документацией.
Кроме того, вот хороший момент, почему compile
по умолчанию.
Согласно документации по плагину jbehave,
При использовании плагина JBehave Maven и в зависимости от остальной конфигурации POM вам может потребоваться добавить Apache log4j в качестве зависимости плагина (в отличие от зависимости проекта), если вы обнаружите, что он не может загружать свои классы
Не могли бы вы столкнуться с той же проблемой?