[Day 25] BDD - godog image封装

封装

由於之後我打算将godog在CI/CD工具上定期跑BDD测试,所以我想要将godog封装在image内,以下是我自己写的dockerfile,提供各位参考。

撰写的步骤就是

  • 选择golang image版本当base image
  • 选择并下载在godog repo内,你想要的release版本
  • 解压缩及搬移执行档案到/usr/local/bin资料夹内
FROM golang:1.16.8

RUN wget https://github.com/cucumber/godog/releases/download/v0.11.0/godog-v0.11.0-linux-amd64.tar.gz

RUN tar -zxvf godog-v0.11.0-linux-amd64.tar.gz && mv godog-v0.11.0-linux-amd64/godog /usr/local/bin/godog && rm godog-v0.11.0-linux-amd64.tar.gz

docker build godog image

docker build --no-cache --pull --force-rm -t rain123473/godog:v0.11.0 -f godog.dockerfile .

测试image

本机用刚刚build的image测试godog

docker run --rm -v $(pwd):/app -w /app rain123473/godog:v0.11.0 sh -c "godog" 
Feature: write ithome30days
  As a happy contestant

  Scenario: Write 5 out of 30         # features/godogs.feature:4
    Given there are 30 days           # godogs_test.go:21 -> thereAreDays
    When I write 5                    # godogs_test.go:10 -> iWrite
    Then there should be 25 remaining # godogs_test.go:25 -> thereShouldBeRemaining

1 scenarios (1 passed)
3 steps (3 passed)
528.7µs

自己封装godog的image有三个优点

  • 第一个是可以自己选择base golang版本
  • 第二个是可以自己选择godog执行档的版本
  • 第三个是可以让大家在本机测试时都可以共用同个版本,不用直接安装在本机内,可以直接用docker run就可以进行测试了

这样子是不是很方便呢~?明天就来带着大家把godog搭配CI/CD的组合技组起来/images/emoticon/emoticon07.gif


<<:  day 25 - 第一手消息 telegram API

>>:  版控图

android studio 30天学习笔记-day 9-rxjava2补充

昨天介绍rxjava2简单的写法,今天会介绍rxjava2其他的做法 Observables RxJ...

Day3. Ruby的数字、字串,以及 ===

Day3 要来介绍Ruby字串、数字,还有Ruby 的 === Number 数字比起其他类别,还要...

Kotlin Android 第23天,从 0 到 ML - CameraX

前言: 今天来介绍如何创建使用 CameraX 来显示预览 大纲 : build.gradle(ap...

【Vue】串 API 前置作业|Axios 是什麽?

Axios 是一个 Promise based 的HTTP 请求工具。 那 Promise base...

Day 17 LeetCode 322. Coin Change

换个口味来写 LeetCode,并且挑战一下不太擅长的动态规划。 You are given an ...