Gauge同CI/CD工具集成

GoCD

GoCD是一个持续集成和部署工具。

安装

安装提示

  • Gauge默认情况下以系统角色安装而非用户角色。然而插件是以用户角色安装,所以插件应该通过Go代理执行的用户账户进行安装。请参考Gauge及其插件的默认安装位置。
  • 或者,您可以为插件设置自定义位置,以便Go代理可以作为其他用户运行。

创建执行任务

  • 创建将执行 gauge run specs 的新任务

  • 如果您只想执行specs的子集,您可以使用标签执行
    比如: gauge run --tags "tags1 & tags2" specs

  • 添加标签 -p 用并行执行它们

  • 使用 --env 标志运行对应指定环境

  • 参阅 帮助 查看可以使用的标志列表

这里写图片描述

报告

  • 想要在Gauge执行后生成报告,可以在通过在Artifacts标签中添加新的artifact来设置Go。

这里写图片描述

  • Artifacts可以在Artifacts标签栏查看。

这里写图片描述

  • 在job执行过程中可以看到控制台输出,在执行完后可以看到报告。

这里写图片描述

  • 您也可以添加一个自定义标签来查看您生成的html报告。

TeamCity

  • 在代理上下载和安装gauge,点击 这里 查看更多安装Gauge文档。
  • 在代理上安装所需的Gauge语言插件: gauge install <language>

安装提示

  • Gauge默认情况下以系统角色安装而非用户角色。然而插件是以用户角色安装,所以插件应该通过TeamCity代理执行的用户账户进行安装。请参考Gauge及其插件的默认安装位置。
  • 或者,您可以为插件设置自定义位置,以便TeamCity代理可以作为其他用户运行。

创建执行任务

  • 在TeamCity中创建一个新项目,指向Gauge项目存储库URL;

  • 添加一个可以执行 gauge run specs 的构建步骤;

  • 如果您之想执行specs的子集,可以使用基于tag执行:

  • 比如: gauge run --tags "tag1 & tag2" specs

  • 添加标签 -p 来使用并行执行;

  • 使用 --env 标签使用对应的环境;

  • 点击 帮助 查看更多可用的标签列表。

报告

  • 想要在Gauge执行后生成报告,可以在通过在Artifacts标签中添加新的artifact来设置TeamCity;

这里写图片描述

  • 您也可以添加自定义标签来查看生成的html报告。
    进入Project Settings -> Report tabs -> Add a new build report tab.来添加自定义标签。

这里写图片描述

  • 在job执行过程中可以看到控制台输出,在执行完后可以看到报告。

Travis-CI

Travis-CI是一个托管的分布式持续集成服务,用于构建和测试Github上托管的软件项目。

  • 登陆Travis-CI然后进入 accounts 菜单
  • 选择要构建的项目库,然后点击该开关

这里写图片描述

创建任务

  • 在你的项目根目录下创建一个 .travis.yml 文件
  • 针对您想构建的项目来添加下列行到 .travis.yml

OS X

language:
- language_name

os:
- osx

install:

- brew install gauge
- gauge install html-report

script: ‘gauge run specs’

sudo: false

Linux

language:
- language_name os:
- linux install:
- sudo apt-key adv –keyserver hkp://pool.sks-keyservers.net –recv-keys 023EDB0B
- echo deb https://dl.bintray.com/gauge/gauge-deb stable main | sudo tee -a /etc/apt/sources.list
- sudo apt-get update
- sudo apt-get install gauge
- gauge install html-report
script: ‘gauge run specs’
sudo: true

  • 如果您只想执行specs的子集,您可以使用标签来执行。例如:添加 script: gauge run --tags "tag1 & tag2" specs 到您的 .travis.yml 文件
  • 添加 -p 标签来使用并行执行,例如:添加 script: gauge run -p specs 到您的 .travis.yml 文件
  • 使用 --env 标签来使用对应的环境
  • 点击 帮助 查看更多可用的标签列表。

CircleCI

CircleCI是一个云托管,持续集成和交付平台。

circle.yml 配置gauge为依赖,并添加 xml report 插件到您的gauge项目。

Linux

dependencies:
pre:
- sudo apt-key adv –keyserver hkp://pool.sks-keyservers.net –recv-keys 023EDB0B
- echo deb https://dl.bintray.com/gauge/gauge-deb stable main | sudo tee -a /etc/apt/sources.list
- sudo apt-get update
- sudo apt-get install gauge

执行测试并生成报告

配置 spec 目录中的 circle.yml 来执行测试,并生成junit结果。

test:
post:
- gauge install
- gauge run specs
- mkdir -p $ CIRCLE_TEST_REPORTS/junit/
- cp ./reports/xml-report/result.xml $CIRCLE_TEST_REPORTS/junit/

Gauge在docker上测试

Gauge可以轻松的安装到docker容器。
由于Gauge支持第一类命令行,因此从任何容易调用它是非常简单的。

准备

Gauge的Docker镜像

  • 在您想项目根目录创建一个 Dockerfile 文件
  • 根据您想构建的系统来添加下列行

DockerFile

FROM ubuntu
Install Java.

RUN apt-get update
RUN apt-get -y install sudo
RUN apt-get -q -y install default-jdk
RUN apt-get install apt-transport-https -y

Install gauge

RUN apt-key adv –keyserver
hkp://pool.sks-keyservers.net –recv-keys 023EDB0B
RUN echo deb https://dl.bintray.com/gauge/gauge-deb stable main | sudo tee -a /etc/apt/sources.list
RUN apt-get update
RUN apt-get install gauge
RUN gauge install java
ENV PATH= $ HOME/.gauge:$PATH

在Docker上执行Gauge

  • 构建标记为测试的docker镜像 docker build . -t test
  • 使用<项目目录>安装Docker镜像,并在容器中运行specs。docker run -v pwd:/<project_directory> -w=”/<project_directory>” test gauge run specs