使用importorskip跳过Postgres特定测试

时间:2015-03-25 01:03:48

标签: python postgresql pytest

我有一个模块,其中包含使用py.test编写的测试。 它有许多不同的函数对不同的数据库后端执行相同的操作 - 主要是sqlite和PostgreSQL。

如果安装了数据库,我只想运行PostgreSQL测试。我最初的想法是使用pytest.importorskip标记并检查是否安装了psycopg2。这可能有点太成功了,因为即使安装了psycopg2,它也会在我的所有虚拟机上跳过这些测试。

当我在安装了PostgreSQL的VM上运行py.test -rs时,我在输出中看到了这一点:

SKIP [1] /home/andy47/pf/test_populate.py:30: could not import 'psycopg2'
SKIP [1] /home/andy47/pf/test_populate.py:25: could not import 'psycopg2'

但是当我运行python时,我可以导入模块:

$ python
>>> import psycopg2
>>> psycopg2.__version__
'2.6 (dt dec pg3 ext lo64)'

这个导入问题可能是由我在virtualenv中运行应用程序引起的吗?

0 个答案:

没有答案