[解決済み] Goでテストカバレッジを測定する方法
質問
Goのユニットテストのコードカバレッジを生成することに成功された方はいらっしゃいますか?ウェブ上でそのためのツールを見つけることができません。
どのように解決するのですか?
注意点 Go 1.2 (2013年第4四半期、rc1が利用可能) が表示されるようになりました。 テストカバレッジ結果 :
の大きな新機能の1つは
go test
というのは を計算し、別途インストールされた新しい " の助けを借りることができるようになりました。go tool cover
プログラムによるテストカバレッジ結果の表示 .は
cover
ツールはgo.tools
サブリポジトリ . を実行することでインストールすることができます。$ go get golang.org/x/tools/cmd/cover
カバーツールは2つのことを行います。
まず、"のとき。
go test
"が与えられます。-cover
フラグを立てると、パッケージのソースを書き換えて、インスツルメンテーション文を挿入するために自動的に実行されます。その後、テストは通常通りコンパイルされ、実行され、基本的なカバレッジの統計が報告されます。$ go test -coverprofile fmtcoverage.html fmt ok fmt 0.060s カバレッジ:91.4% のステートメント $
次に、より詳細なレポートを作成するために、"go test" に異なるフラグを指定すると、カバレッジ・プロファイルが作成され、cover プログラムが " で呼び出されます。
go tool cover
その後、解析することができます。
Goの最新バージョン(2013/09/19)では、使用されています。
go test -coverprofile <filename> <package name>
カバレッジ統計の生成・解析方法の詳細は、コマンドを実行することで確認できます。
$ go help testflag $ go tool cover -help
go test -coverprofile cover.out
そして
go tool cover -html=cover.out
が開くcover.out
デフォルトのブラウザでブラウザが開くのを待つのも嫌なので、こんなエイリアスを定義してみました。
alias gc=grep -v -e " 1$" cover.out
と打つだけであること
gc
そして、すべての行のリストが表示されます。 ない は、まだカバーされていない(ここではcoverage.out
ライン ではなく は"で終わります。1
")。
関連
-
[解決済み】Javaプロジェクト。ApplicationContextのロードに失敗しました
-
[解決済み] プライベートメソッド、フィールド、インナークラスを持つクラスをテストするにはどうすればよいですか?
-
[解決済み] TDDのためのJavaScriptユニットテストツール
-
[解決済み] 抽象クラスをユニットテストする方法:スタブで拡張する?
-
[解決済み] プライベートメソッドをテストすべきか、パブリックメソッドのみをテストすべきか?[クローズド]
-
[解決済み】典型的なテストディレクトリ構造でunittestを実行する
-
[解決済み】mochaのテスト用ディレクトリを指定するには?
-
[解決済み】Arduinoのコードをユニットテストするにはどうしたらいいですか?
-
[解決済み] ファイルシステムに依存するコードの単体テスト
-
[解決済み] スタブとは?
最新
-
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 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】Javaプロジェクト。ApplicationContextのロードに失敗しました
-
[解決済み] jest.fn()の機能と使い方を教えてください。
-
[解決済み] MOCKITOとは何か、Junitとはどう違うか
-
[解決済み] ユニットテストの妥当なコードカバレッジは何%ですか(とその理由)?[クローズド]です。
-
[解決済み】ユニットテストを実行せずにMavenプロジェクトをビルドする
-
[解決済み] モッキングフレームワークにおけるモッキングとスパイの比較
-
[解決済み] 抽象クラスのテスト
-
[解決済み] ファイルシステムに依存するコードの単体テスト
-
[解決済み] "エラー。Karma-Jasmineのユニットテストケースを書いているときに「No provider for router」というエラーが発生しました。
-
[解決済み] RSpec vs Cucumber (RSpecの話) [終了しました。]