1

タイトルはほとんどそれを言います。unittestPythonのPython2.5から2.7への変更に関連して問題が発生しています。Pythonでテストスクリプトを実行すると

python _tester.py

それはうまくいきます。しかし、カバレッジツールを使おうとすると

coverage erase; coverage run _tester.py; coverage html -d html_cov_report

assertRaisesRegexpそれは私のサブクラスの属性ではないと言ってクラッシュしますTestCase。これは、カバレッジツールがpython 2.5を使用unittest.TestCase.assertRaisesRegexpしていて、2.5には存在しないためであることがわかりました。

とにかく、誰かがカバレッジで使用されるPythonを変更する方法を教えてもらえますか?

編集:カバレッジの卵は/Library/Python/2.5/site-packagesにあります。それは重要ですか?

4

2 に答える 2

1

私は4つのオプションを考えています(私見で何をすべきかという順序で):

  1. coveragepython 2.5ではなく、python2.7でインストールできます。
  2. python2.5がデフォルトであると仮定して、python2.7をcoverage使用してスクリプトを実行する場合はこれを修正する必要があると思います。/path/to/python2.7 /path/to/coverage ...
  3. unittest2を使用します。
  4. coverageスクリプトシバンはそうあるべきだと私は信じているので、デフォルトのpythonをpython2.7に変更することができます/usr/bin/env python
于 2012-07-12T21:06:36.250 に答える
0

coverageスクリプトには、適切なバージョンのpythonに変更できるシバンが含まれている必要があります

編集:Python 2.5にインストールした場合は、Python2.7を使用してインストールに切り替えるのがおそらく最も簡単です。

于 2012-07-12T21:05:48.303 に答える