【问题标题】:Maven fails to run Grails Spock integration testsMaven 无法运行 Grails Spock 集成测试
【发布时间】:2013-09-19 15:11:28
【问题描述】:

由于某种原因,Maven Grails 集成无法运行 Spock(集成阶段)* 测试

使用普通 grails 命令grails test-app 可以正常执行测试, 但 Maven 版本 mvn grails:test-app 失败。我在设置中关注了this example

我的 grails BuildConfig.groovy 有以下内容

dependencies {
  // ... irrelevant dependencies omitted
  test 'org.spockframework:spock-grails-support:0.7-groovy-2.0'
}

plugins {
  // ... irrelevant plugins omitted
  test(":spock:0.7") { exclude "spock-grails-support"
}

还有 Maven pom.xml

<dependencies>
  <dependency>
    <groupId>org.spockframework</groupId>
    <artifactId>spock-core</artifactId>
    <version>${spock.version}</version>
    <scope>test</scope>
  </dependency>    
</dependencies>

<build>
<plugins>
 <plugin>
    <groupId>org.grails</groupId>
    <artifactId>grails-maven-plugin</artifactId>
    <version>${grails.version}</version>
    <configuration>
      <fork>true</fork>
    </configuration>
    <extensions>true</extensions>
  </plugin>

  <plugin>
    <groupId>org.spockframework</groupId>
    <artifactId>spock-maven</artifactId>
    <version>${spock.version}</version>
    <executions>
      <execution>
        <goals>
          <goal>find-specs</goal>
        </goals>
      </execution>
    </executions>
  </plugin>
</plugins>
</build>

Grails 版本是 2.2.4Spock 版本是 0.7-groovy-2.0

底线是 Spock 测试根本没有执行。这是怎么回事?

* 目前只用 Spock 编写过集成阶段测试

【问题讨论】:

    标签: maven grails spock


    【解决方案1】:

    插件依赖项应该在pom.xml 中指定,而不是在mavenized 项目中的BuildConfig。 用pom.xml 中的以下条目替换BuildConfig 中的spock 条目(删除spock 插件和对支持jar 的依赖)。

    <dependency>
      <groupId>org.grails.plugins</groupId>
      <artifactId>spock</artifactId>
      <version>0.7</version>
      <scope>runtime</scope>
      <type>zip</type>
      <exclusions>
        <exclusion>
          <groupId>org.spockframework</groupId>
          <artifactId>spock-grails-support</artifactId>
        </exclusion>
      </exclusions>
    </dependency>
    <dependency>
      <groupId>org.spockframework</groupId>
      <artifactId>spock-grails-support</artifactId>
      <version>0.7-groovy-2.0</version>
      <scope>runtime</scope>
    </dependency>
    

    我想你也不需要 spock-maven maven pluing

    【讨论】:

    • 感谢您的快速回复。我让它与你的 Maven 配置一起工作。我的问题中提到的对 Spock 的所有引用都可以从 BuildConfig 中安全删除
    • @JAndy 您可以将&lt;scope&gt; 修改为test 而不是runtime。我遇到了test 范围的一些问题,所以我不得不将其默认为runtime(尽管在测试期间也可以使用运行时依赖项)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-09-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-10-19
    • 2011-07-11
    相关资源
    最近更新 更多