你們想要的unittest用例失敗重運(yùn)行,解決方案來啦!
前言
很多小伙伴一直在詬病 unittest,說 unittest 相對 pytest 來說太雞肋了,pytest 中提供了很多高級功能 unittest 中都沒有。
在這里還是想為 unittest 打抱不平一下,unittest 是由 python 官方維護(hù)的官方庫,官方庫都是比較輕量級的,本身只實(shí)現(xiàn)核心的一些功能,肯定不會像 pytest 這些第三庫一樣根據(jù)需求,去開發(fā)一些定制的功能。
其實(shí) unittest 也有自己的優(yōu)勢,學(xué)習(xí)成本低,使用起來簡單也易上手。目前還是有很多測試的小伙伴在使用的,于是前段時間小編想了想,決定在 unittest 的基礎(chǔ)上擴(kuò)展開發(fā)第三方庫 unittestreport,為 unittest 開發(fā)一些常用的擴(kuò)展功能,來彌補(bǔ) unittest 的不足。

目前準(zhǔn)備實(shí)現(xiàn)的功能有:多種風(fēng)格 HTML 測試報告生成、多線程運(yùn)行、用例失敗重跑、數(shù)據(jù)驅(qū)動、命令行啟動執(zhí)行測試等功能(ps:大家可以可以留言提需求哦)
unittestreport 的安裝:
pip install unittestreport
前段時間實(shí)現(xiàn)了第一個版本,unittest 生成 HTML 測試報告,以及 unittest 用例多線程運(yùn)行機(jī)制,最近這幾天又優(yōu)化了 unittestreport 的一個版本(1.0.9 版本),實(shí)現(xiàn)了 unittest 用例失敗重運(yùn)行的機(jī)制,那么接下來就給大家介紹一下如何使用 unittest 用例失敗重運(yùn)行機(jī)制。

一、unittest 用例重運(yùn)行
關(guān)于 unittest 重運(yùn)行機(jī)制,我 unittestreport 中提供了兩種方式,第一種選擇單個測試用例實(shí)現(xiàn)重運(yùn)行,可以自己去標(biāo)記失敗需要重運(yùn)行的測試用例,第二種是針對運(yùn)行的所有的測試用例,只要運(yùn)行失敗的用例就會重運(yùn)行改用例。那么接下來分別給大家介紹這兩個功能的使用。
單個用例重運(yùn)行
如果像標(biāo)記單個測試用例失敗重運(yùn)行,可以直接使用 unittestreport 中的 rerun 來標(biāo)記測試用例,rerun 接收兩個參數(shù) count,和 interval。
count:用來指定用例失敗重運(yùn)行的次數(shù)
interval:指定每次重運(yùn)行的時間間隔
下面有三個測試用例,其中有一個 test_case_01 使用了 rerun 進(jìn)行了標(biāo)記,設(shè)置的失敗重運(yùn)行次數(shù)為 4 次,每次間隔的時間 2 秒。

運(yùn)行上述用例

生成測試報告如下圖,可以看到第一條測試用例運(yùn)行了三次:

全部用例失敗重跑機(jī)制
關(guān)于所有的測試用例失敗重跑,unittestreport 中提供了一個更為簡單的使用入口,直接使用 unittestreport 中 TestRunner 對象的 rerun_run 方法即可實(shí)現(xiàn)所有的用例失敗重運(yùn)行,rerun_run 同樣有兩個參數(shù),count 和 interval。
count:用來指定用例失敗重運(yùn)行的次數(shù)
interval:指定每次重運(yùn)行的時間間隔
測試用例如下:

使用 unittestreport 的重運(yùn)行機(jī)制,運(yùn)行上述用例

執(zhí)行測試報告如下圖,可以看到兩個失敗的用例,都重復(fù)運(yùn)行了三次:

關(guān)于 unittestreport 重運(yùn)行用例,就給大家介紹到這里。
說明:本文為檸檬班木森老師原創(chuàng),轉(zhuǎn)載需注明出處!