Как заставить 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 в качестве зависимости плагина (в отличие от зависимости проекта), если вы обнаружите, что он не может загружать свои классы

Не могли бы вы столкнуться с той же проблемой?

Другие вопросы по тегам