1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

【Golang】テスト実行中にメッセージを表示させる【テストの進捗表示】

Posted at

テスト中、API などのリクエスト過多を防ぐために Sleep させたり、重い処理が始まったなど、テスト実行中に、その旨をユーザに知らせたい

「"golang" テスト中にメッセージを表示させる」でググっても、ピンポイントで見つからないので自分のググラビリティとして。

TL; DR (今北産業)

  1. 重い処理や Sleep 実行前に t.Log() する。
  2. テスト実行時に -v を付けて実行する。(go test -v ./... など)
  3. Go v1.14 から対応している。

TS; DR

テスト実行時にオプション-vを忘れないこと
package main

import (
	"testing"
	"time"
)

func TestFoo(t *testing.T) {
	t.Parallel()

	t.Logf("重い処理を開始します:%v", t.Name())
	for i := 0; i < 15; i++ {
		time.Sleep(1 * time.Microsecond)
	}
}

func TestBar(t *testing.T) {
	t.Parallel()

	t.Logf("重い処理を開始します:%v", t.Name())
	for i := 0; i < 15; i++ {
		time.Sleep(1 * time.Microsecond)
	}
}

func TestBaz(t *testing.T) {
	t.Parallel()

	t.Logf("重い処理を開始します:%v", t.Name())
	for i := 0; i < 15; i++ {
		time.Sleep(1 * time.Microsecond)
	}
}

// Output:
// === RUN   TestFoo
// === PAUSE TestFoo
// === RUN   TestBar
// === PAUSE TestBar
// === RUN   TestBaz
// === PAUSE TestBaz
// === CONT  TestFoo
//     prog.go:11: 重い処理を開始します:TestFoo
// === CONT  TestBaz
//     prog.go:29: 重い処理を開始します:TestBaz
// === CONT  TestBar
//     prog.go:20: 重い処理を開始します:TestBar
// --- PASS: TestBaz (0.00s)
// --- PASS: TestBar (0.00s)
// --- PASS: TestFoo (0.00s)
// PASS

参考文献

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?