概要
よく忘れるので、ここにメモメモ。。。
goでテストを行う際、たまにランダムでテストを実行してほしいときがあります。
その場合、以下のように指定します。
$ go test -shuffle on ./...
サンプル
Taskfile.yml
version: "3" # ------------------------------------------------------------------------------- # $ go help testflag # # -shuffle off,on,N # Randomize the execution order of tests and benchmarks. # It is off by default. If -shuffle is set to on, then it will seed # the randomizer using the system clock. If -shuffle is set to an # integer N, then N will be used as the seed value. In both cases, # the seed will be reported for reproducibility. # ------------------------------------------------------------------------------- tasks: default: cmds: - task: run-normal - task: run-shuffle run-normal: cmds: - go test -v . run-shuffle: cmds: - go test -v -shuffle on .
lib_test.go
コードに意味はないです。
package main import "testing" func Test1(t *testing.T) { } func Test2(t *testing.T) { } func Test3(t *testing.T) { }
実行結果
gitpod /workspace/try-golang (master) $ task -d examples/singleapp/testing_shuffle/ task: [run-normal] go test -v . === RUN Test1 --- PASS: Test1 (0.00s) === RUN Test2 --- PASS: Test2 (0.00s) === RUN Test3 --- PASS: Test3 (0.00s) PASS ok github.com/devlights/try-golang/examples/singleapp/testing_shuffle 0.002s task: [run-shuffle] go test -v -shuffle on . -test.shuffle 1659684827892975734 === RUN Test2 --- PASS: Test2 (0.00s) === RUN Test3 --- PASS: Test3 (0.00s) === RUN Test1 --- PASS: Test1 (0.00s) PASS ok github.com/devlights/try-golang/examples/singleapp/testing_shuffle 0.003s
参考情報
https://pkg.go.dev/cmd/go#hdr-Testing_flags
過去の記事については、以下のページからご参照下さい。
サンプルコードは、以下の場所で公開しています。