pytest的fixture学习十五

使用类、模块或项目的fixture

有时测试用例不需要直接访问一个fixture对象,比如,测试可能需要将一个空目录作为当前工作目录来操作,但其他方面并不关心具体目录。这就可以使用标准tempfile和pytest fixtures来实现,我们分离fixture的创建到confest.py文件中:

官网示例

通过usefixtures标记在测试模块中声明其使用:

测试用例

因为使用了usefixtures标记,因此执行时每个测试方法都需要cleandir fixture,就像为每个测试方法指定了一个“cleandir”函数参数一样。运行后的结果:

执行结果

可以指定多个fixtures:

指定多个fixtures

可以使用pytestmark在测试模块级别指定fixture的使用:

使用pytestmark

也可以将项目中所有测试所需的fixtures放入ini文件中:

放置ini文件中

注意:

该方法不适用于fixture function。比如,下面示例将不会按照期望的来工作:

不适用于function

当前,这种方式不会产生任何错误或警告,但是后期将会改进https://github.com/pytest-dev/pytest/issues/3664

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

友情链接更多精彩内容