Closed ochaochaocha3 closed 5 years ago
:exclamation: No coverage uploaded for pull request base (
master@4704590
). Click here to learn what that means. The diff coverage isn/a
.
@@ Coverage Diff @@
## master #24 +/- ##
=========================================
Coverage ? 74.52%
=========================================
Files ? 35
Lines ? 1213
Branches ? 0
=========================================
Hits ? 904
Misses ? 243
Partials ? 66
Continue to review full report at Codecov.
Legend - Click here to learn more
Δ = absolute <relative> (impact)
,ø = not affected
,? = missing data
Powered by Codecov. Last update 4704590...234b345. Read the comment docs.
:exclamation: No coverage uploaded for pull request base (
master@4704590
). Click here to learn what that means. The diff coverage isn/a
.
@@ Coverage Diff @@
## master #24 +/- ##
=========================================
Coverage ? 74.52%
=========================================
Files ? 35
Lines ? 1213
Branches ? 0
=========================================
Hits ? 904
Misses ? 243
Partials ? 66
Continue to review full report at Codecov.
Legend - Click here to learn more
Δ = absolute <relative> (impact)
,ø = not affected
,? = missing data
Powered by Codecov. Last update 4704590...234b345. Read the comment docs.
go-accというツールを利用して正確なカバレッジを取得するようにしました。
問題
通常の
go test -cover
を使用したカバレッジ取得では、構文解析時に使われる構造体に関連したコードが実行されていないことになっているなど、結果が正しくありませんでした:https://codecov.io/gh/raa0121/GoBCDice/tree/243ba3a09342ca26fc6ed7025fdb4710d9ca02de/pkg/core/ast
全体のカバレッジは59.76%となっていました:
https://codecov.io/gh/raa0121/GoBCDice/tree/243ba3a09342ca26fc6ed7025fdb4710d9ca02de
原因
「How to get accurate code coverage in Golang (Go)」という記事によると、原因は
go test -cover
がテスト中のパッケージのみを対象としてカバレッジを記録することだそうです。対策
AppVeyorでのテスト時にgo-accというツールを使用するようにしました。このツールは、カバレッジ計算の対象をテスト中のパッケージだけでなく全パッケージに広げることによって、正確なカバレッジを算出します。
対策後の結果
go test -cover
で記録されていなかった部分のコードもカバーされるようになり、期待どおりのカバレッジが算出されました。例えば、前述の構文解析時に使われる構造体に関連したコードのカバレッジは以下のように上昇しました。https://codecov.io/gh/raa0121/GoBCDice/tree/234b34522a764ccc014b0e7ebf113692645b19f2/pkg/core
そのため、全体のカバレッジも74.53%と、15%ほど高くなりました。
https://codecov.io/gh/raa0121/GoBCDice/tree/234b34522a764ccc014b0e7ebf113692645b19f2