听说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. Android主线程不能访问网络异常解决办法

    从两个方面说下这个问题: 1. 不让访问网络的原因 2. 解决该问题的办法 不让访问网络的原因: 由于对于网络状况的不可预见性,很有可能在网络访问的时候造成阻塞,那么这样一来我们的主线程UI线程 就会 ...

  2. android XMl 解析神奇xstream 二: 把对象转换成xml

    前言:对xstream不理解的请看:android XMl 解析神奇xstream 一: 解析android项目中 asset 文件夹 下的 aa.xml 文件 1.Javabeen 代码 packa ...

  3. 详细的图文教程来实现 eclipse环境下如何配置tomcat,并且把项目部署到Tomcat服务器上

    很多初学,尤其自学JavaWeb的朋友首次在eclipse下配置tomcat时,总会有种难下手的感觉,在此,通过图文解说的方法,最直观的向大家演示一遍该配置过程. 第一部分:eclipse环境下如何配 ...

  4. 最近学习linux常用命令。

    一.文件系统的管理tips:输入命令的时候要常用tab键来补全 ls 查看目录信息 ( ls / ) ls -l 等价于 llpwd 查看当前所处的路径 cd 切换目录 (cd /) ,如果不带参数则 ...

  5. andriod增、删、改、查

    将数据库的增删改查单独放进一个包 */ package com.itheima28.sqlitedemo.dao; import java.util.ArrayList; import java.ut ...

  6. IE6-9中tbody的innerHTML不能赋值bug

    IE6-IE9中tbody的innerHTML不能赋值,重现代码如下 <!DOCTYPE html> <html> <head> <meta charset= ...

  7. VMware 12Pro 安装MACOS 10.10

    前言 最近帮人MacBook PRO重新安装了下10.10,在加上用了IP6,对苹果系统很有好感,所以想自己装个mac系统玩一下.虽然有了surface pro3 但是看了时间久了厌了,好想买个MAC ...

  8. Intent详解

    ntent组件虽然不是四大组件,但却是连接四大组件的桥梁,学习好这个知识,也非常的重要. 一.什么是Intent 1.Intent的概念: Android中提供了Intent机制来协助应用间的交互与通 ...

  9. [转]EXCEL如何使用动态公式

    本文转自:http://tech.cncms.com/ruanjian/office/excel/95440.html 也许大家可能还不知道Excel中的动态公式是什么,所谓的动态公式,不是普通的公式 ...

  10. LeetCode题解-----Majority Element II 摩尔投票法

    题目描述: Given an integer array of size n, find all elements that appear more than ⌊ n/3 ⌋ times. The a ...