Go バイナリからコード カバレッジをキャプチャする
質問:
コード カバレッジ メトリクスをどのように使用できるかGo バイナリに対して統合テストを実行するときにキャプチャされますか?
回答:
ネイティブ Go カバレッジ ツールは単体テストでのみ機能しますが、カバレッジを収集することは可能です。統合テスト用のデータ。
解決策:
これを実現するには:
実行するテスト ファイルを作成します。 main() 関数:
<code class="go">func TestMainApp(t *testing.T) { go main() // Start integration tests }</code>
main() テスト内から統合テストを実行します:
<code class="go">cmd := exec.Command("./mybin", "somefile1") cmd.Run()</code>
カバレッジ統計の収集:
<code class="go">coverProfile := "coverage.out" test.RunMain() if err := testing.StartCoverage(coverProfile); err != nil { log.Fatalf("Coverage: %v", err) } defer testing.StopCoverage(coverProfile)</code>
カバレッジ レポートの生成:
<code class="go">if err := testing.RunTests(); err != nil { log.Fatalf("Coverage: %v", err) } cmd := exec.Command("go", "tool", "cover", "-html=coverage.out") cmd.Run()</code>
追加参考:
以上がGo バイナリの統合テストからコード カバレッジを取得するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。