python进阶课

pytest常用命令行选项

2019-07-24  本文已影响98人  test小星星

pytest有丰富的命令行选项,以满足不同的需要,使用pytest --help可以查看全部选项


常用选项

  1. --collect-only 选项
    使用--collect-only选项可以展示在给定配置下哪些用例被运行。方便检查用例是否符合预期。

    --collect -only
    不加参数的执行结果
    不加参数的执行结果
  2. -v选项
    使用-v/--verbose选项,输出的信息会更详细。

    -v选项
  3. -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选项

说明:只要符合名称的测试文件或者测试函数都会被执行。

  1. -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选项
  1. -x 选项
    -x选项,设置如果测试用例遇到失败时立即停止整个会话。
# 测试用例

def test_1():
    print('测试用例1')
    assert 1==2


def test_2():
    print('测试用例2')
    assert 2 == 2

不加-x执行结果


不加-x执行结果

加上-x结果


image.png
  1. --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次所以后面的测试用例就不会执行了。

上一篇 下一篇

猜你喜欢

热点阅读