LoginSignup
20
13

More than 5 years have passed since last update.

特定のテストのみを走らせる

Last updated at Posted at 2014-11-12
shell
go test

のように実行すると、
そのディレクトリにあるテストファイルがすべて読み込まれて実行される。

テストを書きながら実装しているときは、
特定のテストのみを走らせたい。

go test -runあたりでできそうだったが、うまく行かなかったので、
以下のようなスクリプトを書いた。

run_test.sh
#!/bin/bash

SRC=$(go list -f '{{range .GoFiles}}{{.}} {{end}}')
TESTS=$(go list -f '{{range .TestGoFiles}}{{.}} {{end}}')

if [ $# -gt 0 ]; then
    TESTS=$1
fi

go test $SRC $TESTS

特定のテストファイルを指定して実行する。

shell
./run_test.sh hogehoge_test.go

指定がなければ、すべてのテストが実行される。

go list -f '{{range .GoFiles}}{{.}} {{end}}'などで、
Goファイル一覧が取得できるので、これを利用している。

※追記

-runオプションの意味がわかった。

実行する関数を絞り込めるようだ。

shell
go test -run Hogehoge

を実行すると、Hogehogeという文字列が含まれている関数(例えばTestHogehoge(t *testing.T))のみが実行されるようだ。便利。

20
13
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
20
13