pytest常用命令行選項

pytest有豐富的命令行選項,以滿足不同的需要,使用pytest --help可以查看全部選項


常用選項

  1. --collect-only 選項
    使用--collect-only選項可以展示在給定配置下哪些用例被運行。方便檢查用例是否符合預(yù)期。

    --collect -only

    不加參數(shù)的執(zhí)行結(jié)果
    不加參數(shù)的執(zhí)行結(jié)果

  2. -v選項
    使用-v/--verbose選項,輸出的信息會更詳細。

    -v選項

  3. -k 選項
    -k 選項允許你使用表達式指定希望執(zhí)行的測試用例。假設(shè)希望執(zhí)行test_aaa()和test_bbb()這兩個測試用例,那么可以用表達式"aaa or bbb"來篩選。結(jié)合-v查看是否符合預(yù)期,如下:

# 測試用例
def test_aaa():
    print('測試用例1')
    assert 1 == 1

def test_bbb():
    print('測試用例2')
    assert 2 == 2

def test_ccc():
    print('測試用例3')
    assert 3 == 3

def test_ddd():
    print('測試用例4')
    assert 4 == 4
-k選項

說明:只要符合名稱的測試文件或者測試函數(shù)都會被執(zhí)行。

  1. -m 選項
    標(biāo)記(marker)用于標(biāo)記測試并分組,以便快速選中并運行,如下
# 測試用例
@pytest.mark.a  # 標(biāo)記a
def test_1(fixture_func):
    print('測試用例1')
    assert 1==1

@pytest.mark.b  # 標(biāo)記b
def test_2(fixture_func):
    print('測試用例2')
    assert 2 == 2

# 如果希望同時運行它們,那么可以預(yù)先做好標(biāo)記。
# 這里使用什么標(biāo)記名由你自己決定。

執(zhí)行結(jié)果


-m選項
  1. -x 選項
    -x選項,設(shè)置如果測試用例遇到失敗時立即停止整個會話。
# 測試用例

def test_1():
    print('測試用例1')
    assert 1==2


def test_2():
    print('測試用例2')
    assert 2 == 2

不加-x執(zhí)行結(jié)果


不加-x執(zhí)行結(jié)果

加上-x結(jié)果


image.png
  1. --maxfail=num選項
    -x選項的特點是, 一旦遇到測試失敗,就會全局停止。如果你希望pytest失敗幾次后再停止,則可以使用--maxfail選項,明確指定要以失敗幾次。 如設(shè)置--maxfail=2,則需要遇到兩次錯誤才會停止,這樣前面只存在一個失敗測試的就會全都被執(zhí)行。如下圖:

一個失敗測試用例


def test_1():
    print('測試用例1')
    assert 1==2

def test_2():
    print('測試用例2')
    assert 2 == 2

def test_3():
    print('測試用例3')
    assert 3 == 3

--maxfail=2 執(zhí)行結(jié)果


--maxfail=2執(zhí)行結(jié)果

可以看出--maxfail=2 時有一個失敗的測試用例也會全部執(zhí)行完成。
修改測試用例,改成失敗2次

def test_1():
    print('測試用例1')
    assert 1==2

def test_2():
    print('測試用例2')
    assert 2 == 3

def test_3():
    print('測試用例3')
    assert 3 == 3

執(zhí)行結(jié)果


--maxfail=2執(zhí)行結(jié)果2

由于失敗用例等于2次所以后面的測試用例就不會執(zhí)行了。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

友情鏈接更多精彩內(nèi)容