7

ノーズテストを使用して、ユニットテストを自動的に検出して実行しています。また、カバレッジレポートを生成したいと思います。

次のコマンドでnosetestsを実行すると、すべて正常に動作します

nosetests .

カバレッジを生成するためにオンラインで調べたところ、nosetestsにはコマンドライン引数があります--with-coverage。を使用して、このコマンドが存在することも再確認しnosetests --helpました。ただし、次のコマンドを実行するたびに、次の出力が得られます

nosetests --with-coverage .
Usage: nosetests [options]

nosetests: error: no such option: --with-coverage

実行してカバレッジプラグインがインストールされていることを再確認しました

nosetests --plugins

カバレッジは、他のプラグインの束とともにリストに表示されます.

また、次のようなものを使用してカバレッジ データ コレクションを手動で実行できるため、カバレッジがインストールされていることもわかります。

coverage run test.py

--with-coverage オプションを誤って使用していませんか? それとも、私が見逃しているものがありますか?

前もって感謝します。

4

3 に答える 3

4

コマンドラインオプションが機能していません。Janne Karila が提案したことを実行し、プロジェクトのメイン ディレクトリに setup.cfg ファイルを作成しました。そのファイルを取得したら、引数なしでnosetestsを実行するだけで、すべてが実行されます。

ドキュメントを作成しようとしたときに発生した問題の 1 つは、構成で許可されているパラメーターを把握できなかったことです。しかし、https://nose.readthedocs.org/en/latest/usage.html#optionsにリストされているコマンドはどれも使用できることがわかりました。コマンドの前のダブル ダッシュはそのままにしておきます。

参考までに、私の現在の設定ファイルは

[nosetests]
verbosity=1
detailed-errors=1
with-coverage=1
cover-erase=1
cover-package=application
cover-html=1
cover-html-dir=htmlcov
where=tests

この構成ファイルは、カバレッジを使用して、以前の実行のカバレッジを消去し、アプリケーション パッケージ内のファイルについてのみレポートし、html レポートを htmlcov ディレクトリに出力するように指示します。

うまくいけば、これは将来誰かを助けるでしょう。

于 2012-11-10T00:52:57.833 に答える
3

あなたの構文は正しいです。環境に問題がある可能性があります。Python 環境と、ノーズとカバレッジがインストールされている場所を再確認してください。健全性チェックとして、新しい virtualenv をすばやくセットアップし、nose をインストールし、coverage オプションを指定してコマンドを実行できます。

于 2012-11-09T08:26:12.900 に答える