<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      unittest和pytest的設置級別

      unittest:

      import unittest
      
      
      # 整個模塊開始前執行
      def setUpModule():
          print('模塊級別(setUpModule)開始')
      
      
      # 整個模塊結束后執行
      def tearDownModule():
          print('模塊級別(tearDownModule)結束')
      
      
      class Testcase(unittest.TestCase):
      
          # 每個測試用例類開始前執行
          @classmethod
          def setUpClass(cls):
              print('類級別(setUpClass)開始')
      
          # 每個測試用例類結束后執行
          @classmethod
          def tearDownClass(cls):
              print('類級別(tearDownClass)結束')
      
          # 每條測試用例前執行
          def setUp(self) -> None:
              print('測試用例開始')
      
          # 每條測試用例后執行
          def tearDown(self) -> None:
              print('測試用例結束')
      
          # 編寫測試用例
          def test_01(self):
              print('測試用例01執行')
      
          def test_02(self):
              print('測試用例02執行')
      
      
      if __name__ == '__main__':
          unittest.main()
      

        

      pytest:

      import pytest
      
      
      # 模塊級(setup_module/teardown_module): 作用域于模塊的開始與結束,不包含在類中
      def setup_module():
          print("1.模塊級別(setUpModule)開始")
      
      
      def teardown_module():
          print("1.模塊級別(tearDownModule)結束")
      
      
      # 函數級(setup_function/teardown_function):作用域于函數的開始與結束,不包含在類中
      def setup_function():
          print("2.類外面函數級別(setup_function)開始")
      
      
      def teardown_function():
          print("2.類外面函數級別(teardown_function)結束")
      
      
      def test_one():
          print('test_one')
      
      
      # ======================================================================================================================
      class Testcase:
      
          # 類級(setup_class/teardown_class):作用域類的開始與結束,僅在類中運行一次,包含在類中
          def setup_class(self):
              print("1.類里面,類級別(setup_class)開始")
      
          def teardown_class(self):
              print("1.類里面,類級別(teardown_class)開始")
      
          # 方法級(setup_method/teardown_method): 作用域方法的開始與結束,包含在類中
          def setup_method(self):
              """ 和下面的 setup 方法一樣,二選一用"""
              print("2-1.類里面,方法級別(setup_method)開始")
      
          def teardown_method(self):
              """ 和下面的 teardown 方法一樣,二選一用"""
              print('2-1.類里面,方法級別(teardown_method)開始')
      
          # 方法細化級別【兼容類里面的層級(setup/teardown):在每個調用方法前后運行】
          def setup(self):
              print("2-2.類里面,方法級別(setup)開始")
      
          # 方法細化級別
          def teardown(self):
              print("2-2.類里面,方法級別(teardown)開始")
      
          def test_01(self):
              print('測試用例01執行')
      
      
      # ======================================================================================================================
      # 方法級別
      @pytest.fixture(scope="function")
      def test_1():
          pass
      
      
      # 類級別
      @pytest.fixture(scope="class")
      def test_2():
          pass
      
      
      # 模塊級別
      @pytest.fixture(scope="module")
      def test_3():
          pass
      
      
      # 包級別
      @pytest.fixture(scope="package")
      def test_4():
          pass
      
      
      # 會話級別
      @pytest.fixture(scope="session")
      def test_5():
          pass
      
      
      # ======================================================================================================================
      # 鉤子函數
      # conftest.py 作用范圍:在整個測試會話開始之前和結束之后執行。
      def pytest_sessionstart(session):
          print("\n會話開始前的全局設置(pytest_sessionstart)")
      
      
      def pytest_sessionfinish(session, exitstatus):
          print("\n會話結束后的全局清理(pytest_sessionfinish)")
      
      
      # conftest.py 作用范圍:在測試收集完成之后和插件卸載(unconfigure)時執行。
      def pytest_collection_finish(session):
          print("\n測試收集完成后執行(pytest_collection_finish)")
      
      
      def pytest_unconfigure(config):
          print("\n插件卸載時執行(pytest_unconfigure)")
      
      
      # conftest.py 作用范圍:在每個測試項(通常是一個測試函數或測試方法)執行前和執行后執行。
      def pytest_runtest_setup(item):
          print("\n每個測試項執行前的設置(pytest_runtest_setup)")
      
      
      def pytest_runtest_teardown(item):
          print("\n每個測試項執行后的清理(pytest_runtest_teardown)")
      
      
      if __name__ == '__main__':
          pytest.main(['-q', '-s', '-ra'])

       

      使用鉤子函數:pytest_sessionstart / pytest_sessionfinish

      conftest.py
      
      
      import pytest
      
      def pytest_sessionstart(session):
          tl = Tools()
          session.tl = tl
      
      
      def pytest_sessionfinish(session, exitstatus):
          if exitstatus == pytest.ExitCode.OK:
              print("所有測試用例都通過了!")
          elif exitstatus == pytest.ExitCode.TESTS_FAILED:
              print("有測試用例失敗了。")
          elif exitstatus == pytest.ExitCode.INTERRUPTED:
              print("測試會話被用戶中斷。")
          elif exitstatus == pytest.ExitCode.INTERNAL_ERROR:
              print("pytest 內部錯誤。")
          elif exitstatus == pytest.ExitCode.USAGE_ERROR:
              print("pytest 命令行使用錯誤。")
          elif exitstatus == pytest.ExitCode.NO_TESTS_COLLECTED:
              print("沒有收集到任何測試用例。")
      
          # 執行清理操作
          session.tl.close()
      
      
      
      test_demo1.py
      
      
      @pytest.mark.parametrize("result", data)
      def test_AI_AVATAR_COMPLEX(result, request):
          tl = request.session.tl

       

      使用鉤子函數:pytest_runtest_setup/ pytest_runtest_teardown

      寫法一:

      conftest.py
      
      def pytest_sessionstart(session):
          tl = Tools()
          session.tl = tl
      
      
      def pytest_runtest_setup(item):
          tl = item.session.tl
          item.tl = tl
      
      
      
      test_demo1.py
      
      
      @pytest.mark.parametrize("result", data)
      def test_AI_AVATAR_COMPLEX(result, request):
          tl = request.session.tl    # 或者 tl = request.item.tl

      寫法二:

      conftest.py
      
      
      def pytest_runtest_setup(item):
          tl = Tools()
          item.session.tl = tl
          item.tl = tl
      
      
      def pytest_runtest_teardown(item):
          item.tl.close()
      
      
      
      
      test_demo1.py
      
      
      @pytest.mark.parametrize("result", data)
      def test_AI_AVATAR_COMPLEX(result, request):
          tl = request.session.tl

       

      使用鉤子函數:pytest_collection_finish

      conftest.py
      
      def pytest_collection_finish(session):
          tl = Tools()
          session.tl = tl
      
      
      
      
      test_demo1.py
      
      
      @pytest.mark.parametrize("result", data)
      def test_AI_AVATAR_COMPLEX(result, request):
          tl = request.session.tl
      

       

      鉤子函數的分類

      初始化與配置階段
      
      pytest_cmdline_main: 當從命令行運行pytest時被調用,是pytest的主入口點。
      
      pytest_configure: pytest配置階段調用,用于設置測試環境。
      
      pytest_plugin_registered: 當pytest插件注冊時調用。
      
      pytest_report_header: 用于生成測試報告時的自定義標題。
      
      pytest_addoption:用于向pytest的命令行解析器添加自定義選項。
      
      pytest_sessionstart: 整個測試會話開始時調用。
      
      用例收集階段
      
      pytest_collect_file: 收集單個文件作為測試模塊時調用。
      pytest_collect_directory: 收集目錄作為測試模塊時調用。
      pytest_collect_module: 收集Python模塊作為測試模塊時調用。
      pytest_collect_item: 收集單個測試項(如函數、方法或類)時調用。
      pytest_generate_tests: 生成測試用例時調用,常用于參數化。
      pytest_make_parametrize_id: 為參數化測試生成ID時調用。
      pytest_collection_modifyitems: 修改已收集的測試用例項時調用。
      pytest_collection_finish: 用例收集階段結束時調用。
      用例準備與執行階段
      
      pytest_runtest_protocol: 開始執行單個測試項之前調用,用于設置執行協議。
      pytest_runtest_setup: 在執行測試項之前設置fixture和其他準備工作時調用。
      pytest_runtest_call: 實際執行測試項(如函數或方法)時調用。
      pytest_runtest_teardown: 在測試項執行完畢后進行清理時調用。
      pytest_runtest_logstart: 用于開始測試項的日志記錄。
      pytest_runtest_logfinish: 用于結束測試項的日志記錄。
      報告與總結階段
      
      pytest_make_collect_report: 生成收集階段的測試報告。
      pytest_collectreport: 生成收集階段的測試報告。
      pytest_make_test_report: 生成測試項的執行報告.
      pytest_runtest_makereport: 生成測試項的執行報告。
      pytest_report_teststatus: 報告單個測試項的狀態時調用。
      pytest_terminal_summary: 在終端顯示測試總結信息時調用。
      pytest_sessionfinish: 整個測試會話結束時調用。
      異常與調試階段
      
      pytest_exception_interact: 當未捕獲的異常導致測試失敗時,允許用戶交互地調試。
      pytest_internalerror: 當pytest遇到內部錯誤時調用。
      清理與卸載階段
      
      pytest_unconfigure: 在pytest配置清理階段調用,用于清理測試環境。
      

        

      posted @ 2025-05-21 15:37  北京測試菜鳥  閱讀(11)  評論(0)    收藏  舉報
      主站蜘蛛池模板: 少妇办公室好紧好爽再浪一点| 夜爽8888视频在线观看| 蜜桃av无码免费看永久| 少妇又爽又刺激视频| 欧美黑人又粗又大又爽免费| 久久国内精品自在自线91 | 色噜噜在线视频免费观看| 久久国产乱子精品免费女| mm1313亚洲国产精品| AV教师一区高清| 国产一级三级三级在线视 | 成人欧美日韩一区二区三区| 精品 无码 国产观看| 日韩人妻精品中文字幕专区| 日韩深夜福利视频在线观看| 国产在线午夜不卡精品影院| 国产视频 视频一区二区| 国产欧美日韩另类精彩视频| 日韩精品人妻中文字幕| 国产suv精品一区二区五| 久久精品国产99久久无毒不卡| 美女爽到高潮嗷嗷嗷叫免费网站| 在线精品国精品国产不卡| 91在线国内在线播放老师| 国产一区二区一卡二卡| 成人免费av色资源日日| 吉川爱美一区二区三区视频| 四虎在线成人免费观看| 亚洲日本欧洲二区精品| 中文人妻无码一区二区三区在线 | 铜鼓县| 无码专区 人妻系列 在线| 国产精品视频亚洲二区| 久久精品无码免费不卡 | 99人体免费视频| 性做久久久久久久久| 国产精品一区二区三区91| 精品少妇爆乳无码aⅴ区| 激情伊人五月天久久综合| 精品一卡2卡三卡4卡乱码精品视频 | 加勒比无码人妻东京热|