Pytest 自動テスト フレームワークのセットアップとティアダウン

Pytest - セットアップとティアダウン

  • ユースケースを実行するには、事前条件または事後操作 (ユーザーログイン前、データ消去後の操作、その他の操作など) が必要である必要があります。

  • Unittest は 2 つの事前位置 (setup、setupClass) と 2 つの事後位置 (teardown、teardownClass) を提供します。

  • 対照的に、pytest は10 個の setup sum teardown メソッドを提供します。

    • モジュールレベル: setup_module、teardown_module

    • 関数レベル: setup_function、teardown_function、クラスにないメソッド

    • クラスレベル: setup_class、teardown_class

    • メソッドレベル: setup_method、teardown_method

    • ユースケースレベル:セットアップ、ティアダウン

test_py.py

 
 
import pytest
def setup_module():
print("\n!!!! setup_module > 整个.py模块开始前只执行一次:打开浏览器/获取cookie !!!!")
def teardown_module():
print("!!!! teardown_module > 整个.py模块结束后只执行一次:关闭浏览器 !!!!")
def setup_function():
print("\n### setup_function > 每个函数级别用例开始前都执行 ###")
def teardown_function():
print("### teardown_function > 每个函数级别用例结束后都执行 ###")
def test_one():
print("test case 1")
def test_two():
print("test case 2")
class TestCase():
def setup_class(self):
print("\n^^^ setup_class > 整个测试类开始前只执行一次 ^^^")
def teardown_class(self):
print("^^^ teardown_class > 整个测试类结束后只执行一次 ^^^")
def setup_method(self):
print("\n=== setup_method > 类里面每个用例执行前都会执行 ===")
def teardown_method(self):
print("=== teardown_method > 类里面每个用例结束后都会执行 ===")
def setup(self):
print("--- setup > 类里面每个用例执行前都会执行 ---")
def teardown(self):
print("--- teardown > 类里面每个用例结束后都会执行 ---")
def test_three(self):
print("test case 3")
def test_four(self):
print("test case 4")
if __name__ == '__main__':
pytest.main(["-q", "-s", "-ra", "test_py.py"])

  • 実行結果はレベルごとに図のとおりです(説明の順序は上から下、レベルは低位から高位の順です)。

    • 黄色のボックス: ユースケースレベル [セットアップ、ティアダウン]

    • オレンジ色のボックス: メソッド レベル [setup_method、teardown_method]

    • 青いボックス: クラス レベル [setup_class、teardown_class]

    • 緑色のボックス: 関数レベル [setup_function、teardown_function]

    • 赤枠: モジュールレベル [setup_module、teardown_module]

     

    画像-20220922173920314

おすすめ

転載: blog.csdn.net/xiao1542/article/details/132090692