ホームページ >バックエンド開発 >Golang >Go test '-run -' フラグにより​​テストがより高速に実行されます

Go test '-run -' フラグにより​​テストがより高速に実行されます

王林
王林転載
2024-02-09 19:21:08420ブラウズ

Go test“-run -”标志执行测试的速度要快得多

php エディター Apple は、テスト フレームワーク Go test を導入する際に、「-run -」フラグを使用するとテストの実行速度が大幅に向上する可能性があると指摘しました。このフラグは、Go test にサンプル コードではなくテスト関数のみを実行するように指示します。これにより、テスト フレームワークは不要な初期化プロセスやクリーンアップ プロセスをスキップできるため、テストの実行が高速化されます。頻繁にテストを実行する必要がある開発者にとって、このテクニックは非常に便利で、作業効率を向上させることができます。

質問内容

https://github.com/roaringbitmap/roaring

でいくつかのベンチマークを調べています。

特定のベンチマークを実行する場合は、-run - を使用します (コメントに記載されているように)。 go test -bench benchmarknexts -benchmem -run - はより速く実行されるようです。少なくとも -run - なしで実行すると、5 秒の初期オーバーヘッドがあるようです。これも描画されます。

リーリー

-run フラグは正規表現パターンに基づいてテストを実行するため、ここでは何かが除外されているように見えますが、どちらも同じテストを実行するということは正確には何でしょうか。唯一の違いは初期オーバーヘッドです。 。

解決策

go test "-run -" フラグを使用すると、テストがより高速に実行されます。

これは予想される結果です。テストを実行しない方が高速です。

何が実行されているかを確認するには、

-v オプションを go test 実行に追加します。

テストを実行しないでください:

リーリー

すべてのテストを実行します:

リーリー

または、

-run . はすべてのテストと同等であるため、 リーリー

go は go のソースコードを管理するためのツールです。

テストフラグ

リーリー

キャッシュを構築してテストする

go コマンドは、成功したパッケージ テストの結果もキャッシュします。詳細については、「ヘルプのテスト」を参照してください。 「go clean -testcache」を実行すると、キャッシュされたすべてのテスト結果が削除されます (キャッシュされたビルド結果は削除されません)。

以上がGo test '-run -' フラグにより​​テストがより高速に実行されますの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はstackoverflow.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。