Goのtestで特定のテストだけ実行する
いまさら知った話。
testifyのSuiteでいくつかのテストケースをsubtestに分けてラベル付けしてたんですが、テスト実行してもうまくフィルタリングできず正常系、異常系ともに実行される。。。
func (suite *TestSuite) TestEdit() { // 正常系 suite.Run("normal", func() { ... }) // 異常系 suite.Run("abnormal.validation.name", func() { ... })
$ go test -v ./example -count=1 -run /TestEdit/normal
そもそもgo testの-runオプションは部分一致だった!
だから上のケースだとこれでnormalだけ実行できる
$ go test -v ./example -count=1 -run /TestEdit/^normal$
もっというとnormal、abnormalってネーミングがイケてないか。
日本語でラベルつけた方がわかりやすいんだろうけど、cliでマルチバイト打つのになんか抵抗がある。
みんなこういうとこどうしてるんだろうか