問題タブ [python-coverage]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
4 に答える
22469 参照

python - 仮想環境のサイト パッケージが Python カバレッジに含まれないようにする

私は報道に不慣れで、奇妙な問題に遭遇しました。私の記事では、仮想環境のサイト パッケージを考慮しています。カバレッジ実行の出力は次のとおりです。

ホームの下にある私のプロジェクトディレクトリの構造は次のとおりです。

最初はプロジェクト ディレクトリ内に仮想環境があり、現在は virtualenvwrapper を使用して ~/Envs に移動しましたが、問題は解決しませんでした。run.py と test.py は決して特別なものではなく、どちらも atcatalog からアプリをインポートします。また、仮想環境ディレクトリを省略する方法を見つけようとしましたが、Google からは (驚くべきことに) 回答が得られませんでした。十分にテストされたサイト パッケージをテストすることは、カバレッジの目的ではないと思います。したがって、私はそれらを実行から除外します。

サイト パッケージをテストしてカバレッジを回避するにはどうすればよいですか?

0 投票する
1 に答える
328 参照

python - Python でコード カバレッジ アサーションを作成することは可能ですか?

テストを作成したり、コードをデバッグしたりするときに、その行が実行されない場合に通知する Python の行を追加できるようにしたいと考えています。これは可能ですか?

たとえば、次のようなコードを記述できるようになりたいと考えています。

そして、ブランチの 1 つがカバーされていないことを出力で教えてほしいと思います。

私が試したこと

アプローチ1

次のように、デコレータを使用して関数に対してこれを行うことができます。

しかし、フックできる関数のコンパイル中にアクティブ化されるものを見つけるのに苦労しています。

アプローチ 2

各インスタンスにインクリメント値を渡す場合 (check_covered(0)、check_covered(1)、check_covered(2) など) も非常に簡単ですが、コードをコピーまたは削除すると面倒になります。

アプローチ 3

コード カバレッジ ツールを実行してこの情報を取得することは可能ですが、可能であれば、理解できる可能性のある単純な Python コードを使用して取得したいと考えています。

0 投票する
1 に答える
1089 参照

python - Python unittest ブランチ カバレッジは、zip で実行されたジェネレーターを見逃しているようです

Python のブランチ カバレッジ統計が何を伝えようとしているのか、よくわかりません。フォームの与えられたコード

これは単体テスト中にインポートされますが、Python の標準的なブランチ カバレッジは、# Line of interest行が部分的にしかカバーされていないことを示しています ( n->-nCLI 出力では、pretty html レポートの "n ↛ exit [?]")。

返された dict は明確に出力され、空のリストで実行してもカバーされていない行が生成されます。

カバレッジ出力を誤解していますか? これは虫の匂いですか?

Python 3.5.1、カバレッジ 4.0.3

0 投票する
3 に答える
5817 参照

python - Pythonカバレッジモジュールは、単体テストの行を条件付きで無視できますか?

ノーズテストとカバレッジ モジュールを使用して、コードのカバレッジ レポートにテスト対象のバージョンを反映させたいと考えています。次のコードを検討してください。

Python バージョン 3.5 でテストするとprint()、未テストとして表示されます。カバレッジでその行を無視したいのですが、python バージョン 3.3 以降を使用してテストしている場合のみです。

が未満でない場合にのみ# pragma: no coverprint()ステートメントのようなことを行う方法はありますか? 事実上、私は次のようなことをしたいと思います:sys.version_info(3,3)

0 投票する
1 に答える
242 参照

python - Python 3.5 のコード内でノーズ カバレッジを有効にする方法

Nose テストを初期化して実行する TestMain.py があり、その中でコード カバレッジを有効にしようとしています。現在、テストは次のようにロードされています。

プラグインについて私が見つけた唯一の「ドキュメント」はこれであり、それはひどいものです: https://nose.readthedocs.org/en/latest/plugins/cover.html . メソッドが何を期待しているのか、どのような順序で呼び出す必要があるのか​​についてのヒントはまったくなく、ソースコードは役に立ちません (パーサーを提供することになっていますが、パーサーとは何ですか?)

オプション (cover-package と cover-erase) を構成し、html レポートを有効にする必要があります。

誰かがこの API に関する包括的なドキュメントを教えてくれたり、このプラグインの使用方法を示したりできますか?

ありがとうございました!

0 投票する
0 に答える
61 参照

python - モジュールごとの Python テスト カバレッジ レポート

ファイルごとにXML / HTMLカバレッジ統計を出力するCoverageを使用して、テストのコードカバレッジを測定しています。

代わりにpythonモジュールで結果を出力する方法はありますか? 例えば:

0 投票する
1 に答える
525 参照

python - カバレッジに表示されないviews.pyのDjango関数定義?

次の方法でカバレッジを使用して、django アプリをテストしています。

私のテスト スイートでは、いくつかのビューをテストします。

したがって、そのビューで定義されているすべてのものを明確にヒットしています'/bookmarks_json/'coverage reportただし、署名欄がヒットしていないことは言うまでもありません。たとえば、次のようになります。

URL 0% の Django カバレッジ テストで、Ned Batchelder によるソリューションを見てきました。なぜですか? 私はそれがどのように関連していると推測しています。その結果、私は自分のテストランナーを書きました:

ただし、通常のコマンドを使用したい./manage.py testので、独自のテストランナーを作成せずにこれを修正する方法があるかどうか疑問に思っていました.

0 投票する
1 に答える
6512 参照

python - Python coverage.py ブランチのカバレッジ結果を解釈するにはどうすればよいですか?

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

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

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

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

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

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