一、简介
在pytest框架也有一个入口,那就是 pytest.main()
,可以作为用例执行入口,下面我们对pytest.main()
进行讲解。
重点参数说明 args
:param args: List of command line arguments.
翻译 :参数 args:就是参数传入已列表的方式
main() 命令行参数详情
-s: 显示程序中的print/logging输出
-v: 丰富信息模式, 输出更详细的用例执行信息
-q: 安静模式, 不输出环境信息
-x: 出现一条测试用例失败就退出测试。调试阶段非常有用
-k:可以使用and、not、or等逻辑运算符,区分:匹配范围(文件名、类名、函数名)
当不传入参数时,相当于命令行输入 pytest。
当传入参数 -s -v -x 时,相当于命令行输入 pytest -s -v -x。
二、使用
1. pytest的两种运行模式,一种是命令行运行,另外一种是调用pytest.main() 运行
2. pytest.main() 运行模式时,不添加任何参数,表示运行当前目录下的所有的测试文件;
2.1 main()方法中不填写任何参数,表示运行当前目录下的所有的测试文件;
2.2 添加参数:pytest.main(['-s','-v','-k "print"',''])
(1)‘-s’:关闭捕捉,输出打印信息;----就是运行的时候是否出入代码里边的一些打印信息,比如你的测试代码里边包含了print语句,则print的内容会显示出来;如果不填写该参数,则print语句的值不会 打印出来
(2)‘-v’:用于增加测试用例的冗长。---没太看懂到底代表啥意思,等看懂了再补充上,这是复制的别人的
(3)‘-k’ :运行包含某个字符串的测试用例。如:pytest -k add XX.py 表示运行XX.py中包含add的测试用例。
(4)‘q’:减少测试的运行冗长。
(5)‘-x’:出现一条测试用例失败就退出测试。在调试阶段非常有用,当测试用例失败时,应该先调试通过,而不是继续执行测试用例
2.3 要执行测试用例的过滤方法:
(1)指定某个测试类或测试方法,用“::”隔开。如:命令格式:pytest 文件名.py::测试方法 ,pytest.main([模块.py::类或方法]) ,pytest 文件名.py::测试类::测试方法 ,pytest.main([模块.py::类::方法])
3. python文件中包含如下代码,则可运行当前目录下,的测试类或者测试方法(以test_开头或者以test结尾的类.py文件,以test_开头的测试方法,具体可参照配置文件),同时使用到多个参数时,格式如下:
if name =="main":
pytest.main(['-s','-k print', 'add/test_second.py::test_noprint_cock'])