iT邦幫忙

2021 iThome 鐵人賽

DAY 25
0
DevOps

Dev's Ops 啟程系列 第 25

[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 24] BDD - godog 小試身手
下一篇
[Day 26] BDD - 組合技
系列文
Dev's Ops 啟程30

尚未有邦友留言

立即登入留言