Pytest:为某些测试停用django插件

时间:2012-11-23 15:18:00

标签: pytest

我正在为Django运行一些测试,以及使用Selenium对网站进行一些其他测试。

我选择的测试框架非常棒Pytest

用于测试Django我目前已安装pytest-django plugin并且测试django按预期运行,然而现在我回到之前不需要django插件的测试。< / p>

我开始测试并自动拾取django插件 我检查了文档并找到the article,其中解释了如何禁用\ deactivate插件,但是当我运行此命令时:

py.test -p no:django 

我收到错误消息,我的“DJANGO_SETTINGS_MODULE”不在sys.path上。

另外

命令如:

py.test --traceconfig

py.test --version

给我带来同样的错误。 看起来django插件越来越深了?当我只是检查版本或“已安装的插件”时,为什么会调用它?

问题:有没有办法暂时停用此插件而不卸载它?

2 个答案:

答案 0 :(得分:5)

这应该有效。当我安装pytest-2.3.4并运行py.test -p no:django --version时,我没有得到DJANGO_SETTINGS问题。当我离开-p no:django禁用时,我明白了。 如果它不起作用,请链接到pastebin上的完整跟踪。

答案 1 :(得分:0)

IIRC这是因为一系列事情:

  • 启动时py.test查找setuptool入口点“pytest11”
  • 入口点在被激活或停用之前就已导入
  • pytest-django(已发布,目前为1.4)预先加载Django导入
  • 许多Django甚至在导入时都需要配置设置模块

不幸的是,在发布的pytest-django版本中这是不可避免的。最初的答案是:不,在不同的虚拟环境中运行pytest-django和其他测试。

然而,这也是我们开始处理插件版本的原因,它避免了这些问题。我认为现在最好的版本是https://github.com/flub/pytest_django的pytest23分支。这个版本非常完整,当然与发布版本相比,它只需要更多的抛光,主要是测试和文档。

我相信/希望在接下来的几周内这个分支将被合并和发布,我只需让安德烈斯看看并同意。我认为它确实足够稳定,可以开始使用。