はじめに
- Goland はデフォルトで Go の標準的な開発をする環境が整っているが、Ginkgo などの標準から外れたライブラリを利用する際には一手間必要になる。
- 標準の testing を使って書かれたテストファイルであれば、右クリックから Run や Debug を行うことができるが、Ginkgo のテストファイルはテストファイルとして認識されないのかそのままでは Run できないので Run Configuration を作成する必要がある。
バージョン
- Goland 2018.2.2
手順
- メニューの
Run > Edit Configuration
で設定ウィンドウを開く -
+ > Go Test
で新しい設定を追加-
Test framework
をgotest
-
Test Kind
をFile
-
Files
にテストファイル名を入力 -
Working directory
にテストファイルのあるディレクトリ名を入力 -
Program arguments
に-ginkgo.v -test.run .* -ginkgo.focus REGEX
と入力 -
REGEX
の部分は実行したいテストの Description がマッチする正規表現を入力する. -
OK
で設定を終了
-
-
Run
などからテストを実行する
解説
- 実際に実行されるコマンドは以下の通り
go test -c -o /private/var/folders/xf/b6ynjs6577zd2n27r375y6lsnscvtp/T/___foo_test_go -gcflags "-N -l" -a github.com/bar/baz #gosetup
/Applications/GoLand.app/Contents/plugins/go/lib/dlv/mac/dlv --listen=localhost:63693 --headless=true --api-version=2 --backend=default exec /private/var/folders/xf/b6ynjs6577zd2n27r375y6lsnscvtp/T/___foo_test_go -- -test.v -test.run ^$ -ginkgo.v -test.run .* -ginkgo.focus SomeRegex #gosetup
- ひとつ目の
-test.run
にはおそらく testing 向けのTestFoo
などの関数名がパースされて指定されるものと思われるが、Ginkgo では定義されないので空になりテストが実行されないのでProgram arguments
の-test.run .*
にて改めて全件マッチするように指定する - 実際のテスト対象の指定は
Program arguments
の-ginkgo.focus
にて行う
おわりに
- testing を使ったほうがいい