Pytest 運(yùn)行參數(shù)

前面已經(jīng)講過如何運(yùn)行測試用例,不管用哪種方式忽冻,都可以支持這些運(yùn)行參數(shù)惦银。

你可以通過-h--help查看所有的命令望蜡,包含了所有插件的:

pytest --version   # 顯示 pytest 的版本
pytest -h | --help 

1. 查找用例

模塊或目錄

pytest 除了參數(shù)以外绒窑,在 pytest 后面沒有跟任何參數(shù)的字符串都會認(rèn)為是文件或者目錄棕孙,會去這些指定的目錄或文件中查找用例。

pytest tests test_login.py ../flow/test_flow.py

這里 pytest 會去查找當(dāng)前目錄下的 tests 子目錄些膨,當(dāng)前目錄下的test_login.py蟀俊,上級目錄下的 flow 目錄中的 test_flow.py。會找到所有這些目錄或文件中符合條件的測試用例订雾。你可以使用下面的--collect-only來檢驗一下肢预。

--collect-only

此參數(shù)展示當(dāng)前 pytest 能找到的用例,也就是說直接根據(jù)當(dāng)前參數(shù)配置洼哎,能找到的用例列表烫映。用于檢驗運(yùn)行的用例是否符合你的預(yù)期。

注意噩峦,這里只是列出會運(yùn)行的用例锭沟,但是不會實際運(yùn)行。

-k 篩選用例

-k可以讓你使用表達(dá)式來指定希望運(yùn)行的測試用例识补「郧眨可以用 andor李请,not 連接符,模糊匹配文件名厉熟、類名和函數(shù)名导盅。

pytest -k "str or Add and not list" --collect-only

匹配名稱包含 str 或者 Add 且 不包含 list 的文件、類揍瑟、及函數(shù)白翻。如果用上面的例子,這里就只會找到兩個函數(shù):


注意這里有個坑,千萬不要用單引號滤馍,一定要用雙引號包裹表達(dá)式岛琼。

-m 標(biāo)記

標(biāo)記markers用于標(biāo)記測試并分組,以便快速選中某些需要的用例并運(yùn)行巢株。比如我們在冒煙測試時運(yùn)行其中某一部分用例槐瑞,bvt 測試時運(yùn)行另一部分用例「蟀可以通過@pytest.mark.標(biāo)記名來標(biāo)記這些需要的用例困檩,運(yùn)行時用-m 標(biāo)記就能快速選出這部分用例運(yùn)行。

@pytest.mark.bvt  # => 給函數(shù)加上標(biāo)記
def test_int():
    """測試整型"""
    a, b = 1, 2
    assert add(a, b) == 3

運(yùn)行時:

pytest -m bvt

標(biāo)記名可以自己隨意加那槽,但是加上后會有警告信息悼沿。可以使用 pytest 的配置文件配置這些標(biāo)記骚灸。在測試目錄下新建一個pytest.ini糟趾,這是一個文本文件,并加入如下內(nèi)容甚牲。

[pytest]
markers=smoke:冒煙測試用例
  bvt: bvt 測試用例
  online: 正式環(huán)境運(yùn)行的用例

關(guān)于配置文件pytest.ini后面開專門的文章來講解

2. 控制運(yùn)行過程

Pytest 自帶的這些控制運(yùn)行命令可能并不常用义郑,而最常用的應(yīng)該是由失敗重試插件提供的遇到用例失敗重試的命令。

失敗重試需要插件 pip install pytest-rerunfailures

pytest --reruns=3  # 用例失敗重新運(yùn)行3次

以下是 pytest 自帶的運(yùn)行控制命令:

-x, --exitfirst 遇到失敗停止

正常情況下鳖藕,一個用例失敗后魔慷,會繼續(xù)運(yùn)行后續(xù)用例 ,直到所有用例運(yùn)行完為止著恩。-x 參數(shù)會讓整個測試在遇到第一次失敗就停止院尔。這取決于你有沒有這樣的需要,一般來說可能用不上喉誊。

--maxfail=num 遇到多少次失敗就停止

與上面-x一樣邀摆,不過-x是遇到第一次失敗就停止。而--maxfail可以指定遇到幾個測試用例失敗就停止伍茄。

pytest --maxfail=3   # 遇到三次用例失敗就停止

-lf, --last-failed

當(dāng)一個或多個用例失敗后栋盹,定位到最后一個失敗的用例重新運(yùn)行,后續(xù)用例會停止運(yùn)行敷矫。

-ff, --failed-first

-lf查不多例获,失敗后會定位最后一個失敗的用例重新弄運(yùn)行,但是會運(yùn)行完剩余的用例曹仗。

3. 結(jié)果展示

-s, --capture=method顯示標(biāo)準(zhǔn)輸出

默認(rèn)情況下你在用例中寫的print或者log輸出榨汤,都不會在測試結(jié)果中展示。如果你想看到用例中的標(biāo)準(zhǔn)輸出怎茫,那么需要加上-s參數(shù)收壕。

-v, --verbose更詳細(xì)的結(jié)果

使用-v會讓輸出結(jié)果更詳細(xì),不用的時候一個文件占一行蜜宪,而用例之后一個用例占結(jié)果的一行虫埂。并且結(jié)果中的用例名稱和結(jié)果都會展示,而不僅僅是一個.或字符圃验。

-q, --quiet簡略的結(jié)果

-v相反掉伏,-q會輸出更簡化的信息。

-l, --showlocals顯示變量

使用-l會展示運(yùn)行過程中的全局變量和局部變量损谦。

測試報告

默認(rèn)情況下岖免,pytest 只有 xml 格式的報告。通過--junit-xml=path可以輸出 xml 格式的報告照捡。結(jié)合 Jenkins 還是比較直觀颅湘。

但是可能你需要更直觀的 html 測試報告,那么需要使用插件pytest-html栗精,你可以通過 pip install pytest-html安裝 闯参。

然后在命令中加上--html=path

pytest --html=report.html   # 在當(dāng)前目錄生成名為report.html的測試報告

其他還有很多參數(shù),各位可使用 python --help 查詢悲立。這里只是提出一部分較為常用的鹿寨,你把常用的用熟了再去看其他的也就容易懂了。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末薪夕,一起剝皮案震驚了整個濱河市脚草,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌原献,老刑警劉巖馏慨,帶你破解...
    沈念sama閱讀 219,270評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異姑隅,居然都是意外死亡写隶,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,489評論 3 395
  • 文/潘曉璐 我一進(jìn)店門讲仰,熙熙樓的掌柜王于貴愁眉苦臉地迎上來慕趴,“玉大人,你說我怎么就攤上這事鄙陡∶岱浚” “怎么了?”我有些...
    開封第一講書人閱讀 165,630評論 0 356
  • 文/不壞的土叔 我叫張陵趁矾,是天一觀的道長毒费。 經(jīng)常有香客問我,道長愈魏,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,906評論 1 295
  • 正文 為了忘掉前任,我火速辦了婚禮培漏,結(jié)果婚禮上溪厘,老公的妹妹穿的比我還像新娘。我一直安慰自己牌柄,他們只是感情好畸悬,可當(dāng)我...
    茶點故事閱讀 67,928評論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著珊佣,像睡著了一般蹋宦。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上咒锻,一...
    開封第一講書人閱讀 51,718評論 1 305
  • 那天冷冗,我揣著相機(jī)與錄音,去河邊找鬼惑艇。 笑死蒿辙,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的滨巴。 我是一名探鬼主播思灌,決...
    沈念sama閱讀 40,442評論 3 420
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼恭取!你這毒婦竟也來了泰偿?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,345評論 0 276
  • 序言:老撾萬榮一對情侶失蹤蜈垮,失蹤者是張志新(化名)和其女友劉穎耗跛,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體窃款,經(jīng)...
    沈念sama閱讀 45,802評論 1 317
  • 正文 獨居荒郊野嶺守林人離奇死亡课兄,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,984評論 3 337
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了晨继。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片烟阐。...
    茶點故事閱讀 40,117評論 1 351
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖紊扬,靈堂內(nèi)的尸體忽然破棺而出蜒茄,到底是詐尸還是另有隱情,我是刑警寧澤餐屎,帶...
    沈念sama閱讀 35,810評論 5 346
  • 正文 年R本政府宣布檀葛,位于F島的核電站,受9級特大地震影響腹缩,放射性物質(zhì)發(fā)生泄漏屿聋。R本人自食惡果不足惜空扎,卻給世界環(huán)境...
    茶點故事閱讀 41,462評論 3 331
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望润讥。 院中可真熱鬧转锈,春花似錦、人聲如沸楚殿。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,011評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽脆粥。三九已至砌溺,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間变隔,已是汗流浹背规伐。 一陣腳步聲響...
    開封第一講書人閱讀 33,139評論 1 272
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點兒被人妖公主榨干…… 1. 我叫王不留弟胀,地道東北人楷力。 一個月前我還...
    沈念sama閱讀 48,377評論 3 373
  • 正文 我出身青樓,卻偏偏與公主長得像孵户,于是被迫代替她去往敵國和親萧朝。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 45,060評論 2 355