pytest测试用例可以存在函数级别,也可以存在类级别。只需要按照内部的规则设计用例,它可以自动去发现测试用例,不需要像unittest框架测试类需要继承TestCase;
在运行时可以在命令行窗口运行,也可以在pycharm中直接运行,下面会详解两种运行方式;
1.pytest用例设计规则
- 所有的测试脚本存放在python的包中。python的包中带有__init__.py文件
- 模块名设计规则:test_*.py 或者 *_test.py
- 类名设计规则: Test* 以Test开头的类
- 方法名设计规则:test_* 以test_开头的方法名
- 函数名设计规则:test_* 以test_开头的函数
2.脚本命令行运行3中方式
pytest(推荐使用) py.test python -m pytest
3.执行脚本时参数
-s 详细显示日志信息
-q 显示简略运行信息
-x 遇到第一个失败用例停止运行
--maxfile=2 遇到第二个失败用例停止运行,可以改变停止运行的失败用例数
4.pycharm中运性用例
确定是否是pytest运行器运行
更改运行器:file-->setings
用例运行顺序
1.如果鼠标悬停在其中一个用例右键运行,则只会运行悬停处用例;
2.如果鼠标没有悬停则顺序为先运行函数级别用例,在运行类级别用例;
函数级别用例和类中测试方法的运行顺序根据函数名或方法名的尾部,数字优先,然后字母根据ascll码顺序执行;
example:
def test_add_1(): assert add(1,2)==3 def test_add_2(): assert add(2,3)==4 def test_add_a(): assert add(2,3)==5 class Test_class(): def test4(self,qianzhi): print('第四个测试用例') def test5(self,qianzhi): print('第五个测试用例')
运行顺序为: