听说spock是一个加强版的Junit,今天特地安装了,再把过程给大家分享一下。
首先说明,我的Java项目是用maven管理的.
我用的Eclipse是Kelper,开普勒。
要使用Spock之前,首先要先把Groovy的环境配好。
 
上网搜了一下,找到了Groovy Eclipse插件的下载地址:
 
 
刚好这个安装包就是用于开普勒的。
更高级版本的Eclipse好像只能在线安装,目前还没有离线安装包可以下载。
 
有这个安装包就可以把Groovy的Eclipse环境配好,不过我也发现过有一些Eclipse会装不起来,上网下了一个新的Eclipse就能装起,可能是跟Eclipse的某些插件冲突有关。
 
打开Eclipse的配置,会很惊异地发现,多了一个Groovy项。选中Compiler一项,发现支持的编译器的版本从1.8.6到2.2.2,再高的就不能支持了,估计是跟Eclipse的Groovy插件有关的,如果要往上支持,可能要用更新版本的Eclipse了。
 
毫不犹豫地我选取了最新的版本2.2.2.
在Pom文件里面添加了以下的依赖,
<dependency>
<groupId>org.codehaus.groovy</groupId>
<artifactId>groovy-all</artifactId>
<version>2.2.2</version>
</dependency>
 
下一步安装Spock,从Spock的Wiki找到了版本对应的关系。
| Spock version | Groovy version | JUnit version | Grails version | Spring version |
| 0.5-groovy-1.6 | 1.6.1-1.6.x | 4.7-4.x | 1.2.0-1.2.x | 2.5.0-3.x |
| 0.5-groovy-1.7 | 1.7.0-1.7.x | 4.7-4.x | 1.3.0-1.3.x | 2.5.0-3.x | 
| 0.6-groovy-1.7 | 1.7.0-1.7.x | 4.7-4.x | 1.3.0-1.3.x | 2.5.0-3.x | 
| 0.6-groovy-1.8 | 1.8.1-1.8.x | 4.7-4.x | 2.0-2.x | 2.5.0-3.x | 
| 0.7-groovy-1.8 | 1.8.1-1.8.x | 4.7-4.x | 2.0-2.x | 2.5.0-3.x | 
| 0.7-groovy-2.0 | 2.0.0 -2.x.x | 4.7-4.x | 2.2-2.x | 2.5.0-3.x | 
| 1.0-groovy-2.0 | 2.0.0 -2.2.x | 4.7-4.x | 2.2-2.x | 2.5.0-4.x | 
| 1.0-groovy-2.3 | 2.3.0 -2.3.x | 4.7-4.x | 2.2-2.x | 2.5.0-4.x | 
| 1.0-groovy-2.4 | 2.4.0 -2.x.x | 4.7-4.x | 2.2-2.x | 2.5.0-4.x |
发现要支持2.2.2,只能使用1.0-groovy-2.0的版本。
 
所以我又毫不犹豫地添加了以下的依赖。
<dependency>
<groupId>org.spockframework</groupId>
<artifactId>spock-core</artifactId>
<version>1.0-groovy-2.0</version>
</dependency>
 
好,立刻来一个Hello World。
package com.test.groovytest



import spock.lang.Specification;



class AddTest extends Specification{

Add add = new Add();

int result;

def "test add 1 and 2" () {

given: "there are two number 1 and 2"

add.a = 1;

add.b = 2;

when: "add them"

result = add.add();

then: "result should be 3"

result == 4;

}

}
这是一个最简单的对一个加法器的Spock测试。但是写好以后,并不能在Eclipse里面运行测试。
发现Junit的版本不对,立即改用最新的。
<dependency>

<groupId>junit</groupId>

<artifactId>junit</artifactId>

<version>4.12</version>

<scope>test</scope>

</dependency>

OK, 测试可以在Eclipse里面跑起来了。
但是持续集成是在命令行里面运行的,到命令行里面mvn clean compile一下,发现Groovy都没有编译。
上网找了一下,必须要在pom文件里面添加plugin。
好吧,把Plugin的配置加上
<plugins>

<plugin>

<groupId>org.codehaus.gmavenplus</groupId>

<artifactId>gmavenplus-plugin</artifactId>

<version>1.5</version>

<executions>

<execution>

<goals>

<goal>addSources</goal>

<goal>addTestSources</goal>

<goal>generateStubs</goal>

<goal>compile</goal>

<goal>testGenerateStubs</goal>

<goal>testCompile</goal>

<goal>removeStubs</goal>

<goal>removeTestStubs</goal>

</goals>

</execution>

</executions>

</plugin>

<plugin>

<groupId>org.apache.maven.plugins</groupId>

<artifactId>maven-compiler-plugin</artifactId>

</plugin>

</plugins>
发现项目里面的groovy文件还是没能编译出来,上网再找,发现网上的例子都要把Groovy文件放进新开的编译路径下面,这个编译路径的名字是
src/main/groovy
src/test/groovy
 
把这两个路径创建好,把groovy文件挪过来,再mvn clean test。OK,成功了。
 
但是这个时候在Eclipse里面发现以下错误提示,
 
Plugin execution not covered by lifecycle configuration
 
在stackoverflow那里找到解决方法。
在pom文件里面添加
<pluginManagement>

<plugins>

<!--This plugin's configuration is used to store Eclipse m2e settings

only. It has no influence on the Maven build itself. -->

<plugin>

<groupId>org.eclipse.m2e</groupId>

<artifactId>lifecycle-mapping</artifactId>

<version>1.0.0</version>

<configuration>

<lifecycleMappingMetadata>

<pluginExecutions>

<pluginExecution>

<pluginExecutionFilter>

<groupId>

org.codehaus.gmavenplus

</groupId>

<artifactId>

gmavenplus-plugin

</artifactId>

<versionRange>[1.5,)</versionRange>

<goals>

<goal>addSources</goal>

<goal>addTestSources</goal>

<goal>generateStubs</goal>

<goal>compile</goal>

<goal>testGenerateStubs</goal>

<goal>testCompile</goal>

<goal>removeStubs</goal>

<goal>removeTestStubs</goal>

</goals>

</pluginExecutionFilter>

<action>

<ignore></ignore>

</action>

</pluginExecution>

</pluginExecutions>

</lifecycleMappingMetadata>

</configuration>

</plugin>

</plugins>

</pluginManagement>
那么就找不到其他的问题,我们可以开始愉快的编写Spock测试用例了。
 

Groovy Spock环境的安装的更多相关文章

  1. Groovy轻松入门——搭建Groovy开发环境

    摘自: http://www.blogjava.net/BlueSUN/archive/2007/03/17/104391.html Groovy轻松入门--搭建Groovy开发环境 多日来,我发表了 ...

  2. Groovy&开发环境

    Jenkinsfile开发语言 -- Groovy http://www.groovy-lang.org/ A multi-faceted language for the Java platform ...

  3. 使用Groovy+Spock轻松写出更简洁的单测

    当无法避免做一件事时,那就让它变得更简单. 概述 单测是规范的软件开发流程中的必不可少的环节之一.再伟大的程序员也难以避免自己不犯错,不写出有BUG的程序.单测就是用来检测BUG的.Java阵营中,J ...

  4. 配置Groovy开发环境(Windows)

    1.配置java环境 跳过具体配置 C:\Users\Administrator>java -version java version "1.8.0_45" Java(TM) ...

  5. Groovy 配置环境变量

    转载请标明出处:http://blog.csdn.net/zhaoyanjun6/article/details/70313790 本文出自[赵彦军的博客] 概念 Groovy 配置环境变量 开发工具 ...

  6. 【转】windows环境下安装win8.1+Mac OS X 10.10双系统教程

    先要感谢远景论坛里的各位大神们的帖子  没有他们的分享我也不能顺利的装上Mac OS X 10.10! 写这篇随笔主要是为了防止自己遗忘,同时给大家分享下我的经验. 本教程适用于BIOS+MBR分区的 ...

  7. 服务器运行环境(LNMP)安装说明

    服务器运行环境(LNMP)安装说明 因为公司需要一套流程标准,所以写了如下步骤. 先下载文件environment.tar,将文件上传到服务器. 使用命令解压文件,tar xvf environmen ...

  8. 在 windows 环境下安装 redislive

    这是一篇在 windows 环境下安装 redislive 的教程! 项目地址:https://github.com/nkrode/RedisLive 配置文档:http://www.nkrode.c ...

  9. windows环境下安装win8.1+Mac OS X 10.10双系统教程

    首先要感谢远景论坛里的各位大神们的帖子  没有他们的分享我也不能顺利的装上Mac OS X 10.10! 写这篇随笔主要是为了防止自己遗忘,同时给大家分享下我的经验. 本教程适用于BIOS+MBR分区 ...

随机推荐

  1. Engine中执行gp工具返回的要素图层如何获取?

    来自:http://zhihu.esrichina.com.cn/?/question/12087 Engine中执行gp工具返回的[解决办法]:需要用gpUtils.DecodeFeatureLay ...

  2. 弃用的异步get和post方法之代理方法

    #import "ViewController.h" #import "Header.h" @interface ViewController () <N ...

  3. fatal error: file '/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Dev

    类似这样的错误: fatal error: file '/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.pla ...

  4. 将tomcat源码导入eclipse

    前言: 写完了socket小应用的原始版本,中间还有好多预想的功能没有实现,在写的过程中也发现了很多问题.因为前面有粗略的看过tomcat实现原理解析,知道tomcat其实也是纯java写的web服务 ...

  5. AOP这些应用场景(交叉业务)

    1.统计某个方法的性能,可以在每个业务方法执行前后 记录方法执行的当前时间,执行后的时间-执行前的时间= 方法执行时间.  这样就可以在开发过程中(项目未交付给客户前)统计程序的性能. 2.安全 ,权 ...

  6. paas架构之docker——容器进程管理

    1.docker进程管理 docker的进程管理命令ps的用法基本和ubuntu系统的用法一致 1.1. 查看docker进程 sudo docker ps –a 1.2. 附着到容器上 Sudo d ...

  7. android适配器及监听点击和滚动在ListView中的使用

    package com.example.demon08; import java.util.ArrayList;import java.util.HashMap;import java.util.Li ...

  8. html页面通过特殊链接:打电话,发短信,发邮件详细教程

    采用url href链接的方式,实现在Safari  ios,Android 浏览器,webos浏览器,塞班浏览器,IE,Operamini等主流浏览器,进行拨打电话功能. 1. 拨打电话 在电话号码 ...

  9. PPT制作教程:如何制作ppt

    PowerPoint(PPT)是专门用于制作演示文稿(俗称幻灯片).广泛运用于各种会议.产品演示.学校教学等.学会如何制作ppt,成为提升工作效 率的好帮手.PPT包含有很多的功能,我们可以根据个人喜 ...

  10. mysql日志类型

    在MySQL中共有4中日志:错误日志.二进制日志.查询日志和慢查询日志 一.错误日志 错误日志名 host_name.err,并默认在参数DATADIR指定的目录中写入日志文件.可使用 --log-e ...