如何在Maven中运行时让JBehave包含测试依赖项jar?

时间:2011-05-05 20:49:52

标签: java maven bdd jbehave

我有一个足够简单的项目,我正在尝试使用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 个答案:

答案 0 :(得分:4)

该插件的属性scope默认为compile,我想您应该将其更改为test。请咨询documentation

此外,here is good point默认为compile

答案 1 :(得分:2)

根据jbehave maven插件documentation

  

使用JBehave Maven插件时,   并取决于你的POM的其余部分   配置,您可能需要添加   Apache log4j作为插件依赖(as   反对项目依赖)如果   你发现它无法加载   它的课程

你能面对同样的问题吗?