7

我有一个足够简单的项目,我正在尝试使用 JBehave 核心进行测试,并以 maven-kosher 方式做事(即在 src/main 下进行生产,在 src/test 下进行测试,在添加src/it/{java,resources} 的路径,以及 test 范围内的测试依赖项)。让这一切一起运行似乎比它应该更难。

我的情况有点不同,因为我的代码在 src/it/java 中,而资源在 src/it/resources 中。在 Maven 中配置了这些之后,Eclipse 可以很好地运行这些故事——问题出在 Maven 上。

目前我的问题是它在运行(mvn -X)时看不到mockito(或其他测试依赖项)。即使编辑一个工作示例并添加一个测试依赖项也不包括它。

我已经能够通过将我的测试依赖项粘贴在插件 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>

想法?

4

2 回答 2

4

该插件具有scope默认为的属性compile,我想您应该将其更改为test. 查阅文档

此外,这是一个很好的观点,为什么compile默认情况下。

于 2012-06-20T12:23:29.660 回答
2

根据 jbehave maven 插件文档

使用 JBehave Maven 插件时,根据您的 POM 配置的其余部分,如果您发现 Apache log4j 无法加载其类,您可能需要将其添加为插件依赖项(而不是项目依赖项)

你会面临同样的问题吗?

于 2011-05-06T05:04:31.340 回答