乡下人产国偷v产偷v自拍,国产午夜片在线观看,婷婷成人亚洲综合国产麻豆,久久综合给合久久狠狠狠9

  • <output id="e9wm2"></output>
    <s id="e9wm2"><nobr id="e9wm2"><ins id="e9wm2"></ins></nobr></s>

    • 分享

      【pytest官方文檔】解讀fixtures - 6. Fixture errors,當(dāng)fixtures拋錯(cuò)后

       頭號碼甲 2022-08-06 發(fā)布于北京

      既然fixtures函數(shù)也是咱們自己寫的,那難免會發(fā)生異常,當(dāng)fixture函數(shù)異常后,pytest中如何處理呢?

      首先,在pytest中,如果一個(gè)測試函數(shù)中傳入了多個(gè)fixture函數(shù),那么pytest會盡可能的按線性順序先后執(zhí)行。
      如果,先執(zhí)行的fixture函數(shù)有問題引發(fā)了異常,那么pytest將會停止執(zhí)行這個(gè)測試函數(shù)的fixture,并且標(biāo)記此測試函數(shù)有錯(cuò)誤。

      但是,當(dāng)測試被標(biāo)記為有錯(cuò)誤時(shí),并不是說這個(gè)測試函數(shù)的結(jié)果失敗了,這僅僅意味著測試函數(shù)所依賴的fixture有問題,
      導(dǎo)致測試函數(shù)不能正常進(jìn)行。

      所以,這就引出了另一個(gè)值得關(guān)注的點(diǎn):fixture雖靈活好用,切記不要濫用。

      在實(shí)際應(yīng)用中,要盡可能的減少不必要的依賴關(guān)系。這樣的話,測試函數(shù)就不會因?yàn)槠渌幌嚓P(guān)的問題,導(dǎo)致自己不能正常運(yùn)行。

      結(jié)合代碼示例,進(jìn)一步了解:

      import pytest
      
      
      @pytest.fixture
      def order():
          return []
      
      
      @pytest.fixture
      def append_first(order):
          order.append(1)
      
      
      @pytest.fixture
      def append_second(order, append_first):
          order.extend([2])
      
      
      @pytest.fixture(autouse=True)
      def append_third(order, append_second):
          order += [3]
      
      
      def test_order(order):
          assert order == [1, 2, 3]
      

      首先聲明,這段代碼是可以正常運(yùn)行的,測試函數(shù)test_order也是正常通過的。

      假設(shè),不管怎樣,在order.append(1)處總會報(bào)錯(cuò)。這時(shí)候,我們其實(shí)無法確定order.extend([2])order +=[3]
      是否也有問題。

      append_first報(bào)錯(cuò)拋出異常后,pytest就不會繼續(xù)運(yùn)行任何的fixture函數(shù)了,就連測試函數(shù)test_order本身也不會運(yùn)行。

        本站是提供個(gè)人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點(diǎn)擊一鍵舉報(bào)。
        轉(zhuǎn)藏 分享 獻(xiàn)花(0

        0條評論

        發(fā)表

        請遵守用戶 評論公約

        類似文章 更多