听说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. 异步get请求之Block方法

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

  2. 多种cell混合使用

    有时候我们会碰到一个tableView上有多种cell,这个时候就需要定义多种cell,根据条件判断,当满足某个条件的时候选择某个cell 先看plist文件: Person.h #import &l ...

  3. iOS-绘图(Quartz2D)的简单使用(原创)

    前言 附上绘图demo--https://github.com/yangfangxue/YFX_Quartz-2D 什么是Quartz2D? Quartz 2D是一个二维图形绘制引擎,支持ios环境和 ...

  4. 多线程基础(六)GCD基础

    更多值得学习的GCD知识,可以学习: Grand Central Dispatch (GCD) Reference GCDObjC 1.GCD的基本概念     什么是GCD 全称是Grand Cen ...

  5. abs()函数的返回值问题

    转载原文地址:http://www.cnblogs.com/webary/p/4967868.html 在牛客网看到一道关于abs()函数返回值的题目,见下图,当时还没反应过来,第一反应是:自从我开始 ...

  6. Linux 基础知识----shell

    1.file title: #!/bin/bash 2.input: echo $1 echo $2 3.if # ifif [ "$1" = "N" ]the ...

  7. QA:Failed to deploy artifacts from/to snapshots XX Failed to transfer file Return code is: 405, ReasonPhrase:Method Not Allowed.

    QA: Failed to deploy artifacts from/to snapshots XX Failed to transfer file Return code is: 405, Rea ...

  8. CentOS下安装实时检测网络带宽的小工具bmon

    首先下载rpmforge-release扩展的rpm包 32位操作系统:wget http://www.sudu.us/Tools/bmon/rpmforge-release-0.3.6-1.el5. ...

  9. 团队交流合作简单解决方案:TeamViewer远程控制&会议演示 + HyperCam屏幕录制(免费)

    一. 教程摘要 做开发,团队合作是少不了的.而在合作中,有一部分是花在交流讨论上,其中包括初期的任务分配,成员的进度汇报,以及资源和心得分享等.该教程介绍了两个免费的软件,搭配起来,适合人数不超过25 ...

  10. gerrit添加新用户

    默认gerrit的web服务端口为8080,通过apache的反向代理就可以使用标准的80(HTTP)来访问gerrit的web界面,在apache的配置文件httpd.conf添加如下反向代理和HT ...