1

标题几乎说明了这一点。我在将unittestpython 从 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 并且unittest.TestCase.assertRaisesRegexp在 2.5 中不存在。

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

编辑:用于覆盖的彩蛋在 /Library/Python/2.5/site-packages 中。这有关系吗?

4

2 回答 2

1

我正在考虑4个选项(恕我直言,应该按顺序执行):

  1. 您可以coverage在 python2.7 下安装,而不是在 python 2.5 下安装。
  2. coverage我认为如果您使用 python 2.7:运行脚本,这应该修复/path/to/python2.7 /path/to/coverage ...,假设 python2.5 是默认的。
  3. 使用unittest2
  4. 您可以将默认 python 更改为 python 2.7,因为我相信coverage脚本 shebang 应该是/usr/bin/env python
于 2012-07-12T21:06:36.250 回答
0

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

编辑:如果您在 python 2.5 中安装它,切换到使用 python 2.7 安装可能是最简单的。

于 2012-07-12T21:05:48.303 回答