有时候我们需要在运行一批用例前对环境进行检查,如果检查不通过则不运行所有的用例。
实现的方法有3种:
使用-x
参数,快速失败(遇到失败即停止运行):在第一个用例中进行检查,如果不通过则使用例失败,则后续用例不会执行。
但是如果期望,后面的用例,失败了不影响下一条,则使用-x就不能支持。
添加一个全局的fixture,如
import pytest
@pytest.fixture(scope="session", auto_use=True):
if ...:
pytest.skip(‘环境检查不通过‘)
首先,conftest.py会影响到所有的用例,我们可以把这一批用例放到一个目录中,在这个目录中添加contest.py,这样是可以的。
如果脚本分布在各个目录中,则不行。
手动修改每一个模块,或用例,添加if ..: pytest.skip()
或@pytest.mark.skipIf()
, 当用例较多时,修改成本较高
在第一个要执行的用例中使用pytest.exit()退出pytest执行,示例如下。
当然,最推荐的还是在用例编写时就规划好环境检查,当环境不满足时使用@pytest.mark.skipIf()进行跳过。
原文:https://www.cnblogs.com/superhin/p/15188976.html