首页 > 其他分享 > pytest.mark.usefixtures使用

pytest.mark.usefixtures使用

时间:2022-12-02 10:44:40浏览次数:42  
标签:正在 print usefixtures mark 用例 pytest env test 执行

pytest.mark.usefixtures使用

背景

如果每个用例都需要相同的fixture,我们手动在每一个用例上面添加fixture有点累。切记这个fixturescope='function'

class TestCase:
    def test_1(myfixture):
        print('正在执行自动化用例')
        env = myfixture
        print('执行中的env:%s' % env)
        
    def test_2(myfixture):
        print('正在执行自动化用例')
        env = myfixture
        print('执行中的env:%s' % env)

解决

我们把用例放到一个类中,在类上面添加pytest.mark.usefixtures,来给每一个用例添加fixture,当然你也可以在fixture使用autouse=True来实现自动执行,但是这有一个弊端,如果我有一个用例不需要该fixture就需要额外处理了。

用例:

@pytest.mark.usefixtures('myfixture')
class TestCase:
    def test_1(self):
        print('正在执行自动化用例1')

    def test_2(self):
        print('正在执行自动化用例2')

conftest.py:

import pytest


@pytest.fixture(scope='function', params=['test', 'dev'])
def myfixture(request):
    print('\n')
    print('前置条件正在执行')
    env = request.param
    print(env)
    yield env
    print('后置条件正在执行')

执行结果:

============================= test session starts ==============================
collecting ... collected 4 items

test_.py::TestCase::test_1[test] 

前置条件正在执行
test
PASSED                                  [ 25%]正在执行自动化用例1
后置条件正在执行

test_.py::TestCase::test_1[dev] 

前置条件正在执行
dev
PASSED                                   [ 50%]正在执行自动化用例1
后置条件正在执行

test_.py::TestCase::test_2[test] 

前置条件正在执行
test
PASSED                                  [ 75%]正在执行自动化用例2
后置条件正在执行

test_.py::TestCase::test_2[dev] 

前置条件正在执行
dev
PASSED                                   [100%]正在执行自动化用例2
后置条件正在执行


============================== 4 passed in 0.01s ===============================

Process finished with exit code 0

标签:正在,print,usefixtures,mark,用例,pytest,env,test,执行
From: https://www.cnblogs.com/tarzen213/p/16943688.html

相关文章

  • 使用cnblog上传markdown文件到博客园
    下载并且安装python3地址:https://www.python.org/安装完以后:下载pycnblog地址:https://github.com/dongfanger/pycnblo将下载的pycnblog工具解压,打开config.yaml......
  • pytest中如果fixture想用自动化用例过程中产生的数据,怎么办?
    背景往往在测试过程中,数据是在自动化用例执行之后才生成的,并非一开始就知道,又想在用例结束的时候清理掉这些中间数据,该怎么办?思路之前解决的办法是使用cache来解决的:co......
  • 【简单总结】SLAM 算法的 Benchmark 及相关数据集的结果对比
    前言与参考主要是copy一下总结,方便自己后续找方案特定使用,所有的出处均在标题处和原链接跳转,此处仅做各个benchmark收集使用,如果有原作者觉得侵权,请联系我将全力配合相关......
  • markdown小小白常用语法
    第一次用vscode写笔记去同步Cnblog,不知道写啥就记点常用的md语法吧标题怎么写?利用“#”+“”即可实现第几节标题(其中'/',表转义)>#title1>##title2tit......
  • Markdown语法
    标题:#一级标题##二级标题###三级标题 字体:**加粗***斜体****加粗斜体***~~删除线~~ >引用分割线:--- ![截图](C:\Users\15766\Pictures\IMG_E1126(1)......
  • 学习pytest看到一句话记录一下:
    测试分为四个步骤:1.Arrange2.Act3.Assert4.CleanupArrange安排是我们为考试做准备。Act启动。这一行为实现了被测系统(SUT)状态的改变,也是我们可以查看的改变......
  • 如何在 Markdown 文档显示 diff 效果?
    https://blog.alispit.tel/create-a-git-diff-in-markdown/functionaddTwoNumbers(num1,num2){-return1+2+returnnum1+num2}设置编程语言为diff即可。......
  • Pytest - 使用pytest-xdsit 插件运行后 logging 模块日志不会输出的问题
    背景:自己写的日志打印模块,用pytest-n=auto后日志就不会输出#tools.set_loggging.pyimportlogging.handlersimportsysfromconcurrent_log_handlerimportConc......
  • POJ - 1456 Suprtmarket
    POJ-1456Suprtmarket题目大意:传送门有\(n\)个物品,第\(i\)个物品必须要在\(d_i\)天内买完,且卖出该物品可以获得\(p_i\)的利润。一天只能卖一个物品,求最多可以获得多少......
  • pytest + loguru + allure 生成的报告没有log信息
    背景前段时间一直认为loguru这个库很不错,并且应用到了项目中,生成的日志文件也非常好看但是最后的allure报告中和html报告中都没有log信息。然就是各种查查:loguru作者说l......