簡體   English   中英

Python unittest,僅運行失敗的測試

[英]Python unittest, running only the tests that failed

我有一個使用unittest從命令行運行的大型python測試文件。 有些測試需要一段時間才能運行。 這是一個輕度的痛點,因為我通常只關心我添加的最后一個測試。 我想要的是:

  1. 添加測試。
  2. 運行測試(一個失敗,因為我沒有編寫使它通過的代碼)
  3. 實施行為
  4. 僅運行上次失敗的測試
  5. 修復我在實現代碼時犯的愚蠢錯誤
  6. 僅運行失敗的測試,這次通過
  7. 運行所有測試以找出我的問題。

是否可以從命令行執行此操作?

每個測試函數的聲明如下:

    def test_something_something(self):

如果在前面添加下划線,例如:

    def _test_something_something(self):

該測試將被忽略。 您可以做的一件事是快速查找並替換為vim 找到所有“ test_”並將其替換為“ _test_”,然后找到一個失敗的測試並刪除下划線。

(不是完全自動化的解決方案,但是比現有解決方案要好)

如果將測試類的名稱作為參數傳遞給測試腳本,則僅運行該測試。 例如,如果您只想在腳本test_whatever.pyMyTest類中運行測試:

python3 test_whatever.py MyTest

您也可以將單個測試指定為該類的成員。 例如,假設您要在類MyTest運行測試test_something

python3 test_whatever.py MyTest.test_something

只需使用--last-failed選項運行測試(您可能需要pytest)

暫無
暫無

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

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