問題:
同じgoテストを2回実行すると、2回目の実行はまったく行われません。結果は、最初の実行からキャッシュされたものです。
PASS
ok tester/apitests (cached)
リンク
https://golang.org/cmd/go/#hdr-Testing_flags をチェックしましたが、そのためのcliフラグはありません。
質問:
Goテストでテスト結果をキャッシュせずに常にテストを実行するよう強制する可能性があります。
testing flags docs で説明されているいくつかのオプションがあります。
go clean -testcache
:すべてのテスト結果を期限切れにします-count=1
を使用することですただし、コードまたはテストコードを変更すると、キャッシュされたテスト結果が無効になります(ローカルファイルまたは環境変数を使用する場合にもロジックが拡張されます)。したがって、テストキャッシュを手動で無効にする必要はありません。
GOCACHE=off
も言及されています ここ 。
これを修正した方法(macOSでVisual Studio Codeを使用しています):
コード>設定>設定
設定ページの右側にある...
をクリックします
Open settings.json
をクリックします
どちらか:
次のスニペットをsettings.jsonファイルに追加します
"go.testEnvVars": {
"GOCACHE": "off"
}
go.testEnvVars
の値を変更して、次を含めます:"GOCACHE": "off"
Go11では、モジュールでGOCACHE
を使用してキャッシュを無効にできなかったため、代わりに-count=1
を使用しました。
go test -count=1
Go11より前:
GOCACHE=off go test
または、テストキャッシュを消去して、テストを再度実行します。
go clean -testcache && go test