go testで一部のテストをスキップする
2023-08-25 16:40:25
質問
で実行されるいくつかのテストをスキップしたり除外したりすることは可能ですか?
go test
?
私は、標準的な go テストとして書かれた、レストサービスを呼び出すかなり大量の統合型テストを持っており、そのテストは
go test
. たとえば、新しい機能がまだテストサーバーにデプロイされておらず、既存のすべてのテスト (新しい機能をテストする新しいものを除く) をまだ実行したい場合などです。
私が知っているのは
-run
については知っていますが、私は実行したいすべてのテストを指定したくありません、それは長いリストになるでしょう。同時に、私はテストを除外するための正規表現を書くことができませんでした。
別のオプションは、同じブランチで実行されないテストをコミットしないことですが、私が除外するものを指定できれば、それはより簡単です。
どのように解決するのですか?
例えば
VonC
が言ったように
+build
タグ
┌─ oneofone@Oa [/t/tst-tag]
└──➜ ls
a_test.go b_test.go c_test.go
a_test.go :
package tags
import "testing"
func TestA(t *testing.T) {}
b_test.go :
// +build !feature1
package tags
import "testing"
func TestB(t *testing.T) {}
c_test.go :
// +build !feature1
// +build !feature2
package tags
import "testing"
func TestC(t *testing.T) {}
そして、テストを実行する際に
-tags
パラメータでテストを実行します。
┌─ oneofone@Oa [/t/tst-tag]
└──➜ go test -v . | grep PASS:
--- PASS: TestA (0.00 seconds)
--- PASS: TestB (0.00 seconds)
--- PASS: TestC (0.00 seconds)
┌─ oneofone@Oa [/t/tst-tag]
└──➜ go test -v -tags feature1 . | grep PASS:
--- PASS: TestA (0.00 seconds)
┌─ oneofone@Oa [/t/tst-tag]
└──➜ go test -v -tags feature2 . | grep PASS:
--- PASS: TestA (0.00 seconds)
--- PASS: TestB (0.00 seconds)
// アップデート : 異なるロジック :
a_test.go:
// +build all
package tags
import "testing"
func TestA(t *testing.T) {}
b_test.go:
// +build all feature1
package tags
import "testing"
func TestB(t *testing.T) {}
c_test.go:
// +build all feature2
package tags
import "testing"
func TestC(t *testing.T) {}
┌─ oneofone@Oa [/t/tst-tag]
└──➜ go test -v -tags all | grep PASS:
--- PASS: TestA (0.00 seconds)
--- PASS: TestB (0.00 seconds)
--- PASS: TestC (0.00 seconds)
┌─ oneofone@Oa [/t/tst-tag]
└──➜ go test -v -tags feature1 | grep PASS:
--- PASS: TestB (0.00 seconds)
┌─ oneofone@Oa [/t/tst-tag]
└──➜ go test -v -tags="feature1 feature2" | grep PASS:
--- PASS: TestB (0.00 seconds)
--- PASS: TestC (0.00 seconds)
あるいは、特定のテストを.NETのような名前で呼び出す。
d_test.go:
package tags
import "testing"
func TestA1(t *testing.T) {}
func TestB1(t *testing.T) {}
func TestC1(t *testing.T) {}
func TestD1(t *testing.T) {}
出力します。
┌─ oneofone@Oa [/t/tst-tag]
└──➜ go test -run="(A|B)1" -v | grep PASS:
--- PASS: TestA1 (0.00 seconds)
--- PASS: TestB1 (0.00 seconds)
┌─ oneofone@Oa [/t/tst-tag]
└──➜ go test -run="D1" -v | grep PASS:
--- PASS: TestD1 (0.00 seconds)
関連
-
[解決済み】Gradle:テスト結果をコンソールにリアルタイムで表示する方法とは?
-
[解決済み] Maven Integrationのテストを実行する方法
-
[解決済み] テスト/QA プロセスと統合された Git ブランチ戦略
-
[解決済み] Junit: 統合テストと単体テストの分割
-
[解決済み] Jestの「toBe」と「toEqual」の違いは何ですか?
-
[解決済み] モックデータを生成するためのツール?[クローズド]
-
[解決済み] Golangのテスト。"テストファイルなし"
-
[解決済み] IntelliJで、mavenのテストゴールをデバッグするにはどうしたらいいですか?
-
[解決済み] React Nativeアプリはブラウザでテストできるのか?
-
[解決済み] テスト/サンプル用に予約されたソーシャルセキュリティ番号はありますか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] angular2のテスト。ngModel' は 'input' の既知のプロパティではないので、バインドできない
-
[解決済み] SpockテストフレームワークにおけるMock/Stub/Spyの相違点
-
[解決済み] Golangでマップの等価性をテストするには?
-
[解決済み] Haskellのテストワークフロー
-
[解決済み] IntelliJ IDEAで複数のモジュールからまとめて単体テストを実行する
-
[解決済み] Golangのテスト。"テストファイルなし"
-
[解決済み] Gradleのテスト依存性
-
[解決済み] 大量のPDFファイルを比較するツール?[クローズド]
-
[解決済み] React Nativeアプリはブラウザでテストできるのか?
-
[解決済み] テスト/サンプル用に予約されたソーシャルセキュリティ番号はありますか?