簡體   English   中英

在 python 的 unittest 測試套件中強制執行測試順序

[英]Enforce testing order in python's unittest test suite

我已經編寫了代碼來查找可以在一個包中運行的所有測試並將它們收集到一個測試套件中。 唯一的問題是某些測試依賴於已經在運行的其他測試。

這可能看起來像是糟糕的測試架構,但我正在測試的是應用程序的啟動和關閉。 因此,我進行了一些測試,以確保一切正常,然后是另一組測試,以確保一切都被正確清理。 顯然,在啟動測試完成之前,我無法運行關機測試。

是否可以在 Python 的單元測試中說“僅在以下情況為真時才運行此測試,否則運行其他測試並返回給我”?

我知道我可以通過明確說運行啟動測試,現在運行關閉測試來強制執行此順序。 但是我正在使用測試發現,以便您可以編寫更多測試而不必顯式調用它們,因此我試圖避免這樣做。

unittest模塊要求每個測試能夠獨立運行:不依賴於之前或之后運行的其他測試。 但是,通過向測試類添加setUp()tearDown()方法,您可以依賴其他代碼在每次測試之前或之后運行。 您還可以依賴其他代碼在使用setUpClass()setUpModule()及其setUpModule()測試之前或之后運行。

我認為 PyTest 裝置具有更大的靈活性,但我並沒有經常使用它們。

暫無
暫無

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

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