2012-07-12 93 views
1

标题几乎说明了它。我遇到的问题与python 2.5到python unittest python中的更改有关。当我用python运行测试脚本时更改Ned Batchelder的覆盖工具的默认版本的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。这很重要吗?

回答

0

coverage脚本应该有一个shebang可以更改为正确的版本的Python。

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

+0

有一个在覆盖DIR至少36个文件,您可以更改默认的Python到Python 2.7。我查看了看起来像是“运行”模块的那些模块(__init__.py,exec_file.py,...),但没有在顶部看到任何shebang。我应该添加一个吗? – Harrison 2012-07-12 21:25:29

+0

请不要尝试编辑coverage.py文件。只需将其重新安装到您想要的Python安装中即可。 – 2012-07-13 12:38:02

1

我想的4个选项(有什么应该做恕我直言顺序):

  1. 您可以在python2.7安装coverage,而不是Python 2.5的。
  2. 我认为这应该是固定的,如果你运行coverage脚本使用python 2.7:/path/to/python2.7 /path/to/coverage ...,假设python2.5是默认的。
  3. 使用unittest2
  4. 我相信coverage脚本家当应该/usr/bin/env python
+0

我用easy_install来安装覆盖范围(我在Mac上)。有没有一种方法可以指定使用easy_install安装它的哪个版本的python? – Harrison 2012-07-12 21:27:41

+0

你的默认python是什么? ''python -V''。 – mouad 2012-07-12 21:29:15

+0

$ python -V Python 2.7.1 – Harrison 2012-07-12 21:33:31