1、pytest的不同的运行方法
2、pytest常见的命令行参数
3、如何添加自定义的pytest命令行参数
方法:在py文件的最后,添加main方法,使用pytest.main([‘文件名(要执行的用例)’、’参数1’、‘参数2’、‘参数n’])
例如:pytest.main(['demo.py::test','-s'])
方法:设置默认的运行器:file->Setting->Tools->Python Integrated Tools->项目名称->Default test runner->选择py.test
方法:点击上方的设置->点击‘+’ ->python tests -> py.test-> 添加相关的信息和相关参数
pytest 模块名::类名::函数名,pytest demo.py::test1
注意:使用@pytest.mark参数,需要在根目录下建立一个pytest.ini文件并且写入markers选项,否则会保持war
?
在conftest文件里面定义pytest_addoption函数,里面添加自定义的参数
parser.addoption() 参数说明
name:自定义命令行参数的名字,可以是:“foo,“-foo” 或 “–foo”;
action:在命令行中遇到此参数时要采取的基本操作类型;action=“store”:默认,只存储参数的值,可以存储任何类型的值,此时 default 也可以是任何类型的值,而且命令行参数多次使用也只能生效一个,最后一个值覆盖之前的值;
nargs:应该使用的命令行参数的数量;
const:某些操作和nargs选择所需的常量值;
default:如果参数不在命令行中,则生成的默认值。
type:命令行参数应该转换为的类型;
choices:参数允许值的容器;
required:命令行选项是否可以省略(仅可选);
help:对参数作用的简要说明;
metavar:用法消息中参数的名称;
dest:要添加到 parse_args() 返回的对象中的属性的名称;
使用fixture把要自定义的函数全局化使用,下次使用这个自定义的参数时,直接取它的返回值即可
需要使用这个自定义参数的返回值,可以在函数的参数里面加上步骤2的函数名称即可
在pytest里面有两个非test文件非常重要
1、pytest.ini:pytest的主配置文件,可以改变pytest的默认行为
2、conftest.py:测试用例的一些fixture配置
在pytest.ini里面可以设置addopts参数:addopts参数可以更改默认命令行选项,这个当我们在cmd输入一堆指令去执行用例的时候,就可以用该参数代替了,省去重复性的敲命令工作
除了上述的ini配置,还可以参考这篇文章设置其他的配置:https://www.cnblogs.com/poloyy/p/12702294.html
备注:参数和值之间不能有空格
4.1?pytest.ini文件下指定要执行的目录
4.2?根目录创建run_all.py文件,执行全部的文件和生产报告