1. 程式人生 > >測試用例setup和teardown

測試用例setup和teardown

1、用例執行級別:

模組級:所有用例開始前只執行一次,結束後只執行一次

# 模組級:setup_module/teardown_module
import pytest


def setup_module():
    print("setup_module:整個.py模組只執行一次")
    print("比如:所有用例開始前只打開一次瀏覽器!")


def teardown_module():
    print("setup_module:整個.py模組只執行一次")
    print("比如:所有用例開始前只關閉一次瀏覽器!")

def test_one():
    print("正在執行——test_one")
    x="this"
    assert "h" in x


def test_two():
    print("正在執行——test_two")
    x="hello"
    assert hasattr(x,"check")


def test_three():
    print("正在執行——test_three")
    a="hello"
    b="hello world"
    assert a in b


if __name__ == "__main__":
    pytest.main(["-s","test_modulesetUp.py"])

 

函式級:每個用例開始和結束呼叫一次

用例的執行順序是:

setup_function》用例1》teardown_function》,setup_function》用例2》teardown_function》,setup_function》用例3》teardown_function》

# 函式式:setup_function/teardown_function
import pytest
def setup_function():
    print("setup_function:每個用例開始前都會執行!")

def teardown_function():
    print("setup_function:每個用例結束後都會執行!")

def test_one():
    print("正在執行——test_one")
    x="this"
    assert 'h' in x

def test_two():
    print("正在執行——test_two")
    x="hello"
    assert hasattr(x,"check")

def test_three():
    print("正在執行——test_three")
    a="hello"
    b="hello world"
    assert a in b

if __name__=="__main__":
    pytest.main(["-s","test_functionsetUp.py"])

類級和方法級

執行順序:setup_class》setup_method》setup》用例》teardown》teardown_method》teardown_class

import pytest


class TestCase():
    def setup(self):
        print("1setup:每個用例開始前都執行!")

    def teardown(self):
        print("1teardown:每個用例結束後都執行!")

    def setup_class(self):
        print("2setup_class:所有用例執行之前")

    def teardown_class(self):
        print("2teardown_class:所有用例執行之後")

    def setup_method(self):
        print("3setup_method:每個用例執行之前")

    def teardown_method(self):
        print("3teardown_method:每個用例執行之後")

    def test_one(self):
        print("正在執行——test_one")
        x = "this"
        assert 'h' in x

    def test_two(self):
        print("正在執行——test_two")
        x = "hello"
        assert hasattr(x, "check")

    def test_three(self):
        print("正在執行——test_three")
        a = "hello"
        b = "hello world"
        assert a in b


if __name__=="__main__":
    pytest.main(["-s","test_classsetUp.py"])

2、混合

setup_module/teardown_module優先順序最高、setup_class和setup_function不干涉