![](/img/trans.png)
[英]How to use test result in “teardown” in fixtures in “pytest” framework
[英]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.