pytest有丰富的命令行选项,以满足不同的需要,使用pytest --help可以查看全部选项
常用选项
-
--collect -only--collect-only
选项
使用--collect-only选项可以展示在给定配置下哪些用例被运行。方便检查用例是否符合预期。
不加参数的执行结果
不加参数的执行结果 -
-v选项-v
选项
使用-v/--verbose选项,输出的信息会更详细。
-
-k
选项
-k 选项允许你使用表达式指定希望执行的测试用例。假设希望执行test_aaa()和test_bbb()这两个测试用例,那么可以用表达式"aaa or bbb"来筛选。结合-v查看是否符合预期,如下:
# 测试用例
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选项
说明:只要符合名称的测试文件或者测试函数都会被执行。
-
-m
选项
标记(marker)用于标记测试并分组,以便快速选中并运行,如下
# 测试用例
@pytest.mark.a # 标记a
def test_1(fixture_func):
print('测试用例1')
assert 1==1
@pytest.mark.b # 标记b
def test_2(fixture_func):
print('测试用例2')
assert 2 == 2
# 如果希望同时运行它们,那么可以预先做好标记。
# 这里使用什么标记名由你自己决定。
执行结果
-m选项
-
-x
选项
-x选项,设置如果测试用例遇到失败时立即停止整个会话。
# 测试用例
def test_1():
print('测试用例1')
assert 1==2
def test_2():
print('测试用例2')
assert 2 == 2
不加-x执行结果
不加-x执行结果
加上-x结果
image.png
-
--maxfail=num
选项
-x选项的特点是, 一旦遇到测试失败,就会全局停止。如果你希望pytest失败几次后再停止,则可以使用--maxfail选项,明确指定要以失败几次。 如设置--maxfail=2,则需要遇到两次错误才会停止,这样前面只存在一个失败测试的就会全都被执行。如下图:
一个失败测试用例
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 执行结果
--maxfail=2执行结果
可以看出--maxfail=2 时有一个失败的测试用例也会全部执行完成。
修改测试用例,改成失败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
执行结果
--maxfail=2执行结果2
由于失败用例等于2次所以后面的测试用例就不会执行了。
网友评论