概要
よく忘れるのでここにメモメモ。
go test
には、-short
というオプションがあります。テストとしては用意しているけど、時間がかかるので、パパっとテストを実行したいときには含めたくないテストがある場合に使えます。
このオプションをつけて go test
すると (*testing.T).Short()
の値が true となります。
サンプル
以下のようなテストがあるとします。中身に意味はありません。
package lib_test import ( "testing" "github.com/devlights/try-golang/cmd/testing_short_feature/lib" ) func TestAdd(t *testing.T) { if testing.Short() { t.SkipNow() } got := lib.Add(1, 2) if got != 3 { t.Errorf("[want] 3\t[got] %v\n", got) } } func TestSum(t *testing.T) { if testing.Short() { t.Skip("In short mode, this test will be skipped.") } got := lib.Sum(1, 2, 3, 4, 5) if got != 15 { t.Errorf("[want] 15\t[got] %v\n", got) } }
if testing.Short() {
t.SkipNow()
}
としている部分が、short モード時にスキップするようにしているところですね。
普通にテスト実行。
$ go test -v ./lib === RUN TestAdd --- PASS: TestAdd (0.00s) === RUN TestSum --- PASS: TestSum (0.00s) PASS ok github.com/devlights/try-golang/cmd/testing_short_feature/lib 0.002s
いつもどおりですね。
-short
オプションを付与して実行。
$ go test -v -short ./lib === RUN TestAdd --- SKIP: TestAdd (0.00s) === RUN TestSum lib_test.go:22: In short mode, this test will be skipped. --- SKIP: TestSum (0.00s) PASS ok github.com/devlights/try-golang/cmd/testing_short_feature/lib 0.002s
ちゃんとSKIPと表示されていますね。
参考資料
過去の記事については、以下のページからご参照下さい。
- いろいろ備忘録日記まとめ
サンプルコードは、以下の場所で公開しています。
- いろいろ備忘録日記サンプルソース置き場