0
我該如何標記pytest測試收集過程中跳過的測試。從pytest_collection_modifyitems跳過標記測試
什麼即時嘗試做的是pytest收集所有測試,然後使用pytest_collection_modifyitems鉤子標記一個特定的測試,因爲我從數據庫中獲得的條件跳過。
我發現我不喜歡一個解決方案,我想知道是否也許有一個更好的辦法。
def pytest_collection_modifyitems(items, config):
... # get skip condition from database
for item in items:
if skip_condition == True:
item._request.applymarker(pytest.mark.skipif(True, reason='Put any reason here'))
這種解決方案的問題是,我訪問類的保護成員(_request
)..
感謝。
爲什麼要嘗試這樣做? – jonrsharpe
@jonrsharpe我們正在製作一個數據庫,以便從那裏跳過測試,而不必爲了測試通過而承諾跳過並等待每個開發人員重新掌握測試。 – Israhack
但是,如果您在實際裝飾方法時將數據庫調用作爲「skipif」的一部分,那麼無需回溯applymarker即可實現同樣的功能。 – jonrsharpe