簡體   English   中英

檢索鼻子測試用例的結果並用於拆卸

[英]Retrieve result of nose test case and use in teardown

無論安裝是否成功完成或測試運行的狀態如何,拆卸都將繼續進行。

我想執行拆卸中的任務,該任務僅在剛運行的測試失敗時才執行。 是否有一種簡單的方法來檢索每個測試用例的結果並將其傳遞給需要解釋的拆卸方法?

class TestMyProgram:
    def setup(self):
        # setup code here

    def teardown(self):
        # teardown code here

        # run this code if test failed
        if test_result == 'FAIL':
            # do something    

    def test_one(self):
        # example test placeholder 
        pass

    def test_two(self):
        # example test placeholder 
        pass

您必須捕獲測試的狀態,並將其傳遞給您的拆卸方法。 測試狀態在鼻子代碼中:如果不編寫鼻子插件,則無法訪問。 但是即使使用插件,您也必須編寫自定義綁定,以將狀態傳遞給拆解方法。 但是,如果您願意稍微破壞代碼的結構以適應您的請求,則可以執行以下操作:

def special_trardown(self, state):
    # only state specific logic goes here
    print state

def test_one_with_passing_state(self):
    try:
        test_one(self)
    except AssertionError as err:
        test_result = "FAIL"
        self.special_teardown(test_result)
        raise

它不是完美的,但是它使事件的流向查看您測試的其他人顯而易見。 您還可以將其包裝為裝飾器/上下文管理器,以獲取更多語法糖。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM