pytest的fixture学习一

2020-06-29  本文已影响0人  小源宝1573

主要从官网上面学习。

pytest fixtures: 显示化、模块化、可扩展

软件测试fixtures初始化测试函数。fixtures提供了固定基线,以便测试可靠执行并产生一致的、可重复的结果。初始化可启动服务、状态或其他可操作环境。测试函数通过参数来访问,对于每个测试函数使用的fixture,通常在测试函数的定义中都有一个参数(以fixture命名)。

pytest fixtures在传统的setup/teardown函数的xUnit样式上有重大改进:

··fixtures有明确的名字,并且通过从测试函数、模块、类或整个项目中声明其使用方法来激活。

··fixtures以模块化的方式来实现,每个fixture名称会触发一个fixture function,该fixture function本身也可以使用其他fixtures。

··fixture管理范围从简单的unit到复杂的功能性测试,可以根据配置和组件选项来对fixtures和tests进行参数化,或者在函数、类、模块或整个测试会话范围内重复使用fixture。

此外,pytest继续支持传统xuint样式设置。你可以混合两种,并根据需要从传统样式逐步过渡到新的样式,也可以从现有的unittest.TestCase或nose based项目开始。

Fixtures使用@pytest.fixture装饰器来定义,如下描述。pytest有内置fixtures,如下列出:这块还没有搞懂怎么操作

capfd

捕获,作为文本输出到文件描述符1和2

capfdbinary

捕获,作为字节输出到文件描述符1和2

caplog

控制日志记录和访问日志条目。

capsys

捕获,作为文本的输出到sys.stdout和sys.stderr。

capsysbinary

捕获,作为字节的输出到sys.stdout和sys.stderr。

cache

在pytest运行期间存储和检索值。

doctest_namespace

提供一个插入docstests命名空间的字典。

monkeypatch

临时修改类,函数,字典,os.environ和其他对象。

pytestconfig

访问配置值,插件管理和插件挂钩。

record_property

向测试中添加其他属性。

record_testsuite_property

向测试套件中添加其他属性。

recwarn

记录测试函数发出的警告。

request

提供有关正在执行的测试函数的信息。

testdir

提供一个临时测试目录,以帮助运行和测试pytest插件。

tmp_path

提供pathlib.Path对象给每个测试函数唯一的临时目录。

tmp_path_factory

创建会话范围的临时目录并返回pathlib.Path对象。

tmpdir

为每个测试函数唯一的临时目录提供py.path.local对象; 由tmp_path代替。

tmpdir_factory

创建会话范围的临时目录并返回py.path.local对象; 由tmp_path_factory代替。

上一篇下一篇

猜你喜欢

热点阅读