首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >PyTest:跳过整个模块/文件(python2和3)

PyTest:跳过整个模块/文件(python2和3)
EN

Stack Overflow用户
提问于 2017-02-28 14:51:25
回答 3查看 20.9K关注 0票数 17

如果导入不起作用,我想跳过整个测试:

代码语言:javascript
复制
try:
  import networkx
except:
  import pytest
  pytest.skip()

这在python-2.7和python-3.5中都很好,两者都使用pytest-2.8.1。当我试图用pytest-3.0.5在python-3.6中运行代码时,我得到以下错误:

不允许在测试之外使用pytest.skip。如果您试图装饰一个测试函数,请使用@pytest.mark.skip或@pytest.mark.skipif装饰器。

如何编写在所有提到的环境中工作的代码/测试?我已经尝试过像这样重写but块,但是它只适用于最新的配置:

代码语言:javascript
复制
try:
  pytest.skip()
except:
  pytestmark = pytest.mark.skip
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2017-02-28 23:14:19

一个更简单的解决方案是使用pytest.importorskip

票数 13
EN

Stack Overflow用户

发布于 2017-02-28 15:03:11

我自己想出来的。跳过块需要检查pytest的版本:

代码语言:javascript
复制
if pytest.__version__ < "3.0.0":
  pytest.skip()
else:
  pytestmark = pytest.mark.skip
票数 9
EN

Stack Overflow用户

发布于 2022-02-25 11:08:33

可以使用pytest.skipallow_module_level=True跳过模块的其余测试:

代码语言:javascript
复制
pytest.skip(allow_module_level=True)

参见:https://docs.pytest.org/en/latest/how-to/skipping.html#skipping-test-functions中的示例

票数 8
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42511879

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档