本文为霍格沃兹测试开发学社学员笔记分享
原文链接:https://ceshiren.com/t/topic/24702
pytest/py.test [包名]
pytest 文件名.py
pytest 文件名.py::类名
pytest 文件名.py::类名::方法名
pytest 执行当前目录及子目录下所有符合条件的测试用例
执行单独一个 pytest 模块
执行某个类,加-v展示具体执行的哪个
--lf(--last-failed)
只重新运行故障。--ff(--failed-first)
先运行故障然后再运行其余的测试只运行上次失败的用例,如果上次没有失败的就全部运行
失败的在中间
先执行失败的,在执行其他的
—help
-x 用例一旦失败(fail/error),就立刻停止执行
--maxfail=num 用例达到
-m 标记用例
-k 执行包含某个关键字的测试用例
-v 打印详细日志
-s 打印输出日志(一般-vs一块儿使用)
—collect-only(测试平台,pytest 自动导入功能 )
有失败的,其他不执行就加-x
发现失败的就停止执行了,第二条失败了,后面都不执行了
最多可以有几个错误用例数,达到后就停止执行了
运行名字中包含str的用例
其他用例未被命中
只收集不运行
if __name__ == '__main__':
# 1、运行当前目录下所有符合规则的用例,包括子目录(test_*.py 和 *_test.py)
pytest.main()
# 2、运行test_mark1.py::test_dkej模块中的某一条用例
pytest.main(['test_mark1.py::test_dkej','-vs'])
# 3、运行某个 标签
pytest.main(['test_mark1.py','-vs','-m','dkej'])
运行方式
`python test_*.py `
在main里面设置完后,直接用python执行对应模块,相当于在命令行中执行pytest
另一种执行方式,命令行中在pytest前面输入python -m
try:
可能产生异常的代码块
except [ (Error1, Error2, ... ) [as e] ]:
处理异常的代码块1
except [ (Error3, Error4, ... ) [as e] ]:
处理异常的代码块2
except [Exception]:
处理其它异常
def test_raise():
with pytest.raises(ValueError, match='must be 0 or None'):
raise ValueError("value must be 0 or None")
def test_raise1():
with pytest.raises(ValueError) as exc_info:
raise ValueError("value must be 42")
assert exc_info.type is ValueError
assert exc_info.value.args[0] == "value must be 42"