1

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

使用普通 grails 命令可以正常执行测试grails test-app,但 Maven 版本mvn grails:test-app失败。我在设置中遵循了这个例子

我的圣杯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 编写了集成阶段测试

4

1 回答 1

3

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

<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-mavenmaven pluing

于 2013-09-19T15:17:01.773 回答