LoginSignup
2
0

More than 5 years have passed since last update.

Goland で Ginkgo のテストファイルを実行する

Last updated at Posted at 2018-09-18

はじめに

  • Goland はデフォルトで Go の標準的な開発をする環境が整っているが、Ginkgo などの標準から外れたライブラリを利用する際には一手間必要になる。
  • 標準の testing を使って書かれたテストファイルであれば、右クリックから Run や Debug を行うことができるが、Ginkgo のテストファイルはテストファイルとして認識されないのかそのままでは Run できないので Run Configuration を作成する必要がある。

バージョン

  • Goland 2018.2.2

手順

  • メニューの Run > Edit Configuration で設定ウィンドウを開く
  • + > Go Test で新しい設定を追加
    • Test frameworkgotest
    • Test KindFile
    • 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 を使ったほうがいい
2
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
2
0