zoukankan      html  css  js  c++  java
  • pytest fixture执行顺序

    module和function的调用顺序:

    import pytest
    
    @pytest.fixture(scope="module", params=["mod1", "mod2"])
    def modarg(request):
        param = request.param
        print ("  SETUP modarg %s" % param)
        yield param
        print ("  TEARDOWN modarg %s" % param)
    
    @pytest.fixture(scope="function", params=[1,2])
    def otherarg(request):
        param = request.param
        print ("  SETUP otherarg %s" % param)
        yield param
        print ("  TEARDOWN otherarg %s" % param)
    
    def test_0(otherarg):
        print ("  RUN test0 with otherarg %s" % otherarg)
    
    
    def test_1(modarg):
        print ("  RUN test1 with modarg %s" % modarg)
    
    
    def test_2(otherarg, modarg):
        print ("  RUN test2 with otherarg %s and modarg %s" % (otherarg, modarg))

    结果:

    D:Codep2>py.test test_module.py -v -s
    ============================= test session starts =============================
    platform win32 -- Python 2.7.15, pytest-3.6.3, py-1.5.4, pluggy-0.6.0 -- c:python27python.exe
    cachedir: .pytest_cache
    rootdir: D:Codep2, inifile:
    plugins: allure-adaptor-1.7.10
    collected 8 items

    test_module.py::test_0[1]

    SETUP otherarg 1
    RUN test0 with otherarg 1
    PASSED TEARDOWN otherarg 1

    test_module.py::test_0[2]

    SETUP otherarg 2
    RUN test0 with otherarg 2
    PASSED TEARDOWN otherarg 2

    test_module.py::test_1[mod1]

    SETUP modarg mod1
    RUN test1 with modarg mod1
    PASSED


    test_module.py::test_2[mod1-1]

    SETUP otherarg 1
    RUN test2 with otherarg 1 and modarg mod1
    PASSED TEARDOWN otherarg 1

    test_module.py::test_2[mod1-2]

    SETUP otherarg 2
    RUN test2 with otherarg 2 and modarg mod1
    PASSED TEARDOWN otherarg 2

    test_module.py::test_1[mod2]

    TEARDOWN modarg mod1


    SETUP modarg mod2
    RUN test1 with modarg mod2
    PASSED
    test_module.py::test_2[mod2-1]

    SETUP otherarg 1
    RUN test2 with otherarg 1 and modarg mod2
    PASSED TEARDOWN otherarg 1

    test_module.py::test_2[mod2-2]

    SETUP otherarg 2
    RUN test2 with otherarg 2 and modarg mod2
    PASSED TEARDOWN otherarg 2
    TEARDOWN modarg mod2


    ========================== 8 passed in 0.12 seconds ===========================

  • 相关阅读:
    Python--初识函数
    Python中的文件操作
    Python中的集合
    Python中的编码和解码
    Python的关键字is和==
    Python中的字典
    Python中的列表和元组
    Python中几种数据的常用内置方法
    Python的编码
    python_while
  • 原文地址:https://www.cnblogs.com/tlmn2008/p/9590580.html
Copyright © 2011-2022 走看看