2016-03-19 8 views
0

私はpackageに2つのGoファイルしかありません:1つはmain関数を定義し、もう1つはテストのためのものです。"go test"は不正確な報告範囲を報告します

は、今私は、このパッケージにcdを持っているし、次のコマンドを実行することを想定しています

$ go test -cover 
PASS 
coverage: 41.8% of statements 
ok  github.com/suzaku/dummage  0.010s 

あなたが見ることができるように、これは正しく動作します。

は、しかし、私はHTMLレポートを生成したいので、いくつかのグーグルの後に私は、次のコマンドを使用します。この時間範囲は1.8%に低下していること

$ go test -run=Coverage -coverprofile=c.out github.com/suzaku/dummage 
ok  github.com/suzaku/dummage  0.010s coverage: 1.8% of statements 

注意を。

これを解決するにはどうすればよいですか?

答えて

3

あなたのgo試験には-run=Coverageフラグが必要ですか?つまり、Coverageに一致するテストのみが実行されます。そのテストのカバープロファイルを生成する場合は、go test -coverprofile c.out github.com/suzaku/dummageを実行してください。その後、go tool cover -html c.outを実行して、HTMLレポートを表示することができます。

-run=Coverageを目的に追加した場合は、動作が期待されます。-run=Coverageの間に実行されるコードの量は、すべてのテストを実行しているときのコードの量よりも少なく、パッケージ全体のテストカバレッジが計算されます。

関連する問題