テスト - Go
最終更新日: 2026-07-25
TOP(About this memo)) > 一覧(Go) > テスト
公式
Go言語のtesting.Tとtesting.Mとtesting.Bとtesting.Fの違いと使い方
https://sagantaf.hatenablog.com/entry/2023/07/21/235340
go test
実行
- 「TestUserRepository」という名前の関数のみ実行(正規表現)
- -count=1でキャッシュを消している
docker compose exec api go test -v -count=1 -timeout 30s -run ^TestUserRepository$ ./app/repository
すべてのパッケージで実行する方法はある?
並列化
パッケージ単位での並列化(デフォルトで有効)
個々のパッケージ・ファイル内の並列化
- WIP
- この機能に関してはデフォルトではオフになっている。
- コードへt.Parallel()を指定することで並列化する(詳細は未確認)
- -parallel n で並列数を指定
ヘルパーメソッドでエラー行を出力しないようにする
TestMain
- TestMainで書いた処理は、m.Run()の前の処理 -> m.Run()で各テスト関数を上から順に実行 -> m.Run()の後の処理 という順で実行される。
- この関数は各Test***メソッドごとに実行されるのではなく、1度しか実行されない。
- なお、個別のテストを実行したとき(-runによって個別に指定したとき)もTestMainの処理は動作する。
- パッケージ内にひとつしか書くことができない。(他の関数と同様に再定義扱いになってしまう)
- os.Exit
Goにはsetupやteardonwに該当する機能がない。
テストカバレッジ
net/http/httptest
テスト時のDBのロールバック
日時をスタブする方法
カバレッジの除外方法
その他
testifyパッケージ