更改Ned Batchelder的覆盖工具的默认python版本

时间:2012-07-12 20:59:33

标签: python coverage.py python-coverage

标题几乎说明了。我遇到的问题与unittest python从python 2.5到2.7的变化有关。当我用python

运行我的测试脚本时
python _tester.py

它工作正常。但是当我尝试使用覆盖工具时

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

它崩溃说assertRaisesRegexp不是我的TestCase子类的属性。我发现这是因为覆盖工具使用python 2.5而2.5中不存在unittest.TestCase.assertRaisesRegexp

无论如何,有人可以告诉我如何更改覆盖范围使用的python吗?

编辑:覆盖的鸡蛋在/Library/Python/2.5/site-packages中。那有关系吗?

2 个答案:

答案 0 :(得分:1)

我正在考虑4个选项(按照恕我直办的顺序):

  1. 您可以在python2.7下安装coverage而不是python 2.5。
  2. 我认为如果使用python 2.7:coverage运行/path/to/python2.7 /path/to/coverage ...脚本,假设python2.5是默认值,我应该修复此问题。
  3. 使用unittest2
  4. 您可以将默认python更改为python 2.7,因为我相信coverage脚本shebang应为/usr/bin/env python

答案 1 :(得分:0)

coverage脚本应该有shebang,可以更改为正确版本的python。

编辑:如果你在python 2.5中安装它,可能最容易切换到使用python 2.7进行安装。