14

coverage.pyテストのコードカバレッジを測定するために使用しています。ブランチ カバレッジを有効にしましたが、レポートの意味がよくわかりません。

ブランチ カバレッジがなければ、100% のカバレッジが得られます。

Name                           Stmts   Miss  Cover   Missing
------------------------------------------------------------
mylib/queries.py                  44      0   100%

ブランチ カバレッジが有効な場合:

Name                           Stmts   Miss Branch BrPart  Cover   Missing
--------------------------------------------------------------------------
mylib/queries.py                  44      1     20      3    94%   55, 21->10, 53->-48, 59->-58

問題のソースはここにあります。

21->10理にかなっています。句はif決して評価されませんFalse(外側の for ループの先頭に戻ります)。

しかし、頭を悩ませてください53->-4859->-58彼らはどういう意味ですか?

4

1 に答える 1

17

ダンのコメントは近いです。まず、負の数は、その行番号から始まる関数からの終了を意味します。したがって、-48 は、48 行目から関数を終了することを意味します。

問題は空のループではありません。ループが完了すると、これらの分岐が発生します。おそらくそうではなかったようです。

ところで: Coverage.py 4.1b3 では、この動作の一部が変更されまし53->exit, 59->exitた。また、ブランチ自体の識別方法が異なる場合もあります。試してみる。

于 2016-05-19T01:01:58.607 に答える