装饰器parametrize

    1. @pytest.mark.parametrize(argnames, argvalues, ids=None):
    • argnames:用逗号分隔的字符串,表示一个或多个参数名称,或参数字符串的列表/元组。
    • argvalues:如果仅指定了一个argname,则argvalues是值的列表。
    • 如果指定了N个argname,则argvalues必须是N个元组的列表,
    • 其中每个元组元素都为其各自的argname指定一个值。

    装饰器skip,跳过测试用例

    • 无条件的跳过模块中的所有测试:
    1. pytestmark = pytest.mark.skip("all tests still WIP")
    • 有条件的跳过模块中的所有测试:
    1. pytestmark = pytest.mark.skipif(sys.platform == "win32", "tests for linux only")
    • 当import错误时,跳过模块中的所有测试:
    1. pexpect = pytest.importorskip("pexpect")

    XFail:标记测试用例是期望失败的

    1. @pytest.mark.xfail
    • strict参数,这个参数会让XPASS的结果在测试报告中变成失败。
    1. @pytest.mark.xfail(strict=True)
    2. def test_function(): ...
    • 也可以在ini中通过xfail_strict来指定strict参 数:
    1. [pytest]
    2. xfail_strict=true
    • reason参数,如同skipif一样,你可以标记你在某个特定平台上期望测试是失败的。
    1. @pytest.mark.xfail(sys.version_info >= (3, 6), reason="Python3.6 api changes")
    2. def test_function(): ...
    • raises参数,如果你想更清楚的表达测试为什么失败,你可以用raises参数指定一个或者一组异常
    1. @pytest.mark.xfail(raises=RuntimeError)
    2. def test_function(): ...
    • run 参数,如果一个测试应该被标记为xfail并且预期是失败的,但是你又暂时不想运行这个测试用例,那么你可 以将run参数设置为False
    1. @pytest.mark.xfail(run=False)
    2. def test_function(): ...
    • 忽略xfail:在命令行中指定下面的参数,可以强制让xfail和pytest.xfail失效。