Как заставить JBehave включать тестовые jar-зависимости при работе в Maven? - PullRequest
7 голосов
/ 06 мая 2011

У меня есть достаточно простой проект, который я пытаюсь протестировать с ядром JBehave, и делаю что-то в стиле maven-kosher (то есть производство в src / main, тестирование в src / test, интеграционное тестирование) по добавленному пути src / it / {java, resources} и тестовых зависимостей, ограниченных тестом). Работать вместе, кажется, сложнее, чем должно быть.

Мой случай немного отличается, потому что мой код находится в src / it / java, а ресурсы в src / it / resources. Настроив их в Maven, Eclipse отлично справляется с историями - проблема с Maven.

В настоящее время моя проблема заключается в том, что он не видит mockito (или другие тестовые зависимости) при запуске (mvn -X). Даже редактирование рабочего примера и добавление тестовой зависимости не включает его.

Я смог заставить его работать, вставив свои тестовые зависимости в плагин xml blob, но, очевидно, я не хочу повторяться так.

Соответствующие части файла сборки (без ручного определения зависимости):

<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 ]

4 голосов
/ 20 июня 2012

Плагин имеет свойство scope, по умолчанию compile, я полагаю, вам следует изменить его на test. Проконсультируйтесь с документацией .

Кроме того, вот хорошая точка , почему compile по умолчанию.

2 голосов
/ 06 мая 2011

Согласно плагину jbehave maven документация ,

При использовании плагина JBehave Maven и в зависимости от остальной конфигурации POM вам может потребоваться добавить Apache log4j какЗависимость плагина (в отличие от Зависимости проекта), если вы обнаружите, что он не может загрузить свои классы

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

...