pytest有豐富的命令行選項,以滿足不同的需要,使用pytest --help可以查看全部選項
常用選項
-
--collect-only選項
使用--collect-only選項可以展示在給定配置下哪些用例被運行。方便檢查用例是否符合預(yù)期。
--collect -only
不加參數(shù)的執(zhí)行結(jié)果
不加參數(shù)的執(zhí)行結(jié)果 -
-v選項
使用-v/--verbose選項,輸出的信息會更詳細。
-v選項 -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í)行。
-
-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選項
-
-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
-
--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í)行了。


