はじめに
Codewars の Go の問題はテスティングフレームワークとして Ginkgo https://onsi.github.io/ginkgo/ を使っているけれど、このフレームワークの使い方がわからなて試行錯誤して一応問題を解く上では困らなくなったのでメモを残す。
手順は以下の通り
- 作業ディレクトリの作成
- モジュールの初期化
- フレームワークのダウンロード
- テストコードのコピー・ペースト
- テストの実行
Codewars ではパッケージ名に kata を使うのが一般的なようなので、モジュール名を codewars、パッケージ名を kata にする。
作業ディレクトリの作成
mkdir -p codewars/kata
モジュールの初期化
cd codewars
go mod init codewars
フレームワークのダウンロード
ginko は v2 を使うことにした。特に理由はないが、Codewars のテストコードは v2 を使うように後で変更する。
go get github.com/onsi/ginkgo/v2
go get github.com/onsi/gomega
雛形のコピー、修正
cd kata
cat > kata.go
cat > kata_test.go
sed -i 's#ginkgo#ginkgo/v2#' kata_test.go
テスト実行(テストースイートの雛形作成)
ginkgo bootstrap
go test -v
トップディレクトリでテスト実行する場合
go test -v ./...
あとはコード書きながらテストする。