参考文档:pytest中文文档
一、基本测试方法:
1、指定目录下执行pytest,正常函数
test_*.py文件会被默认测试
1 def playvoice(voice): 2 return "play "+voice 3 4 def test_playvoice(): 5 assert playvoice("audio") == "play audio"
2、指定目录下执行pytest,测试类
1 def play_one(one): 2 return "==="+one 3 def play_two(two): 4 return two+150 5 6 class TestClass(object): 7 def test_play_one(self): 8 assert play_one("one") == "===one" 9 def test_play_two(self): 10 assert play_two(30) == 18
三、pytest 操作
1、pytest默认规则
1 文件/模块以test_, _test 起始或结尾
2 类 以Test开始,不能带有init方法
3 函数或方法以test开头。
2、执行方法
1 pytest.main()
可以添加入参,详见本章第三小节
调用格式如下:
import pytest
if __name__=="__main__": pytest.main(["-s"])
作用范围,与之同级的符合pytest运行规则的所有文件,目录内文件。
这里test_ail.py同级的cases_inter目录下的test_baidu.py内函数被执行了。
因为自己文件名也是test_ail.py 所以图中右侧部分的test_print类中的方法也会被执行。
也可以运行主函数时,函数所在文件命名为ail.py则其中的函数就不会执行了。
我们也尝试了在cases_inter/test_baidu.py中加入pytest.main(),执行后,test_baidu外层的文件是不执行的,如test_ail.py文件没有执行。
2 对应的命令行也可以执行
在terminal中执行
3、参数
注意参数应该放在列表中写,pytest.main(["-s","test_baidu.py"])
-s 是显示测试中的print打印
-v 是显示测试用例的详细信息
用双::来标定类名,文件/模块名,函数名(用例)。
目录和文件之间用路径符号分割,注意/ 和 \
模块名和 用例方法名用 ::双::分割
文件中还是可以不在类中定义函数。如test_bd测试用例
def test_bd(): print("===baidu inter") class TestBaidu: def test_baidu(self): print("baidu")
原文:https://www.cnblogs.com/lx63blog/p/13948481.html