開発時に必要な情報について記載します。
ローカル環境での実行には、プロジェクトルートディレクトリ配下で次のコマンドを実行します。
go run main.go exec --config "config/config.yaml"
上記コマンドを動作させるにあたり、事前準備が必要になります。
事前準備についてはQuick Start Guideを参照してください。
プロジェクトルートディレクトリで次のコマンドを実行することで単体テストが実行できます。
テスト時に無限ループとなることを避けるため、コマンド実行時に引数でタイムアウト時間を指定することを推奨します。
go test -v ./... -timeout 120s
プロジェクトルートディレクトリで次のコマンドを実行することでコードがフォーマットされます。
go fmt ./...
lintにはgolangci-lintを利用しています。
Macであれば次のようにbrewでインストールできます。
brew install golangci-lint
その他のインストール方法は公式ドキュメントを参照ください。
golangci-lint run ./...
Pull RequestのPush時にCIでlintのチェックが走ります。
golangci-lintにより問題のある箇所にコメントが付けられます。内容を確認して修正してください。
パッケージ追加の際はimport文を追加し、次のコマンドを実行することで依存関係の解決とインストールがされます。
パッケージ管理にはgo.modファイルとgo.sumファイルを利用しています。どちらも次のコマンドで更新されるため、手動で編集することはありません。
go mod tidy
Go自体のバージョンを更新する際は、新しいバージョンのGoを環境にインストールし、次のコマンドでgo.modの更新を行なってください。
go mod tidy -go=${VERSION}
次のコマンドによりGoDocでパッケージのドキュメントを提供するWebサーバーが起動します。
# 事前準備
ln -s $(pwd) ${GOROOT}/src
# ドキュメントの表示
go run golang.org/x/tools/cmd/godoc -http=:6060
コマンド実行後にlocalhost:6060
にアクセスすることで、モジュールで利用しているパッケージのドキュメントを閲覧できます。
デフォルトではexportされている関数、変数のドキュメントのみ表示されます。
全ての関数、変数のドキュメントを表示するにはlocalhost:6060?m=all
へアクセスします。
Pull RequestのPush時にmain.yaml
に記載のワークフローがトリガされます。
CIでは次の項目のチェックを行なっています。
- lint
- test
gatling
ディレクトリはGatling Operatorの実行に必要なファイルを含むディレクトリです。
更新する際はst-tech/gatling-operator/gatlingをコピーしてください。
詳細はWhat is this gatling
directory?を参照してください。