2012-11-29 14 views
6

pytestのプラグインは、http://pypi.python.org/pypi/pytest-covからインストールしました。pytestとカバレッジの組み合わせが機能しません

pytest.py:

class TestNumbers: 
    def test_int_float(self): 
     assert 1 == 1.0 

    def test_int_str(self): 
     assert 1 == 1 

は、私はコマンドでそれをテストしてみました:それから私は、簡単なテストコードを持っている 'py.test --cov・レポートの用語--cov pytest.py'。しかし、それは動作しません。私がpytest.pyの完全なパスを与えても、それはまだ収集するためのデータではありませんでした。しかし、私がpy.test pytest.pyを使用した場合、確かにOkをテストしました。

私はこの問題について非常に混乱しています。ありがとうございました。

+1

"test_"という接頭辞が付いたファイル名を使用しますが、実際には "pytest"モジュールをシャドーする "pytest.py"は使用しないでください。 – hpk42

答えて

10

試してみてください。

py.test --cov-report term --cov=. test.py 

--covパラメータは、パスがカバーするために、引数の格言を取ります。あなたの例では、--covtest.pyを消費しますが、テストするファイルについてはpy.testの引数が残っていません。

UPDATE:@ hpk42は、pytest.py以外の例を呼び出す必要があります。私はこれをローカルでやったときに、代わりにtest.pyと呼んだ。

+0

"pytest.py"がユーザモジュールである場合、動作しません。それは実際のpy.testを隠す(あなたが "help pytest"を実行してヘルパー/物をインポートするので)。 – hpk42

+0

Whups ...これは私の例では 'test.py'を意味していました。あなたは絶対に当然です。 'py.test'は少なくともこの問題を通知するまともなエラーメッセージを出力します。 – jszakmeister

+0

ありがとうございました。問題はファイル名として 'pytest.py'を使用したことです。変更後、すべてのテストはOKを通過しました。あなたは答えが正しい。コマンドは "py.test --cov-report term --cov = .test.py" – user1067671

関連する問題