Novice学Pytest(1)-快速入门
一、前言
pytest是什么,为什么要用pytest,pytest要怎么用。。。可能一开始很多小伙伴跟我一样(嘻嘻嘻,大神请绕路~),一直没搞懂pytest相关概念和应用。没有捷径,novice从头学起。me to...
二、pytest是什么
pytest是Python下的第三方单元测试框架,相比unittest,pytest更容易上手,面试逼格也高~
三、为什么要用pytest
- 非常容易上手,入门简单
- 能够支持简单的单元测试和复杂的功能测试
- 支持参数化
- 执行测试过程中可以将某些测试跳过(skip),或者对某些预期失败的case标记成失败
- 支持重复执行(rerun)失败的 case
- 支持运行由 nose, unittest 编写的测试 case
- 可生成 html 报告
- 方便的和持续集成工具 jenkins 集成
- 可支持执行部分用例
- 具有很多第三方插件,并且可以自定义扩展
四、安装pytest
1.cmd运行
pip install -U pytest
2.检查pytest的安装版本
pytest --version或者pytest -V
五、创建2个简单测试
1.编写2个简单测试脚本
#!/usr/bin/env python # -*- coding: utf-8 -*- """ __Title__ = __Time__ = 2021/7/31 21:46 __Author__ = Isaymore __Blog__ = https://www.cnblogs.com/huainanhai/ """ def func(x): return x + 1 def test_answer(): assert func(3) == 5
#!/usr/bin/env python # -*- coding: utf-8 -*- """ __Title__ = __Time__ = 2021/7/31 21:46 __Author__ = Isaymore __Blog__ = https://www.cnblogs.com/huainanhai/ """ class TestClass(object): def test_one(self): x = "this" assert 'h' in x def test_two(self): x = "hello" assert hasattr(x,'check')
2.在pycharm中terminal命令行输入:pytest
总结:
1.只执行pytest,会发现当前目录和其子目录下test_*.py或*_test.py文件
2.只想执行某个py文件,输入:pytest test_sample.py
3.加上-q,表示简短输出,即显示简短的结果,输入:pytest -q test_sample.py
六、pytest用例的设计规则
用pytest写用例时,一定要按照下面的规则写,否则不符合规则的测试用例不会被执行
- 文件名为 test_*.py 文件和*_test.py
- 以 test_ 开头的函数
- 以 Test 开头的类,不能包含 __init__ 方法
- 类里面以 test_ 开头的方法
- 所有的包 package 必须要有__init__.py 文件
七、pytest用例执行规则
1、当前目录和其子目录下所有的用例:pytest
2、执行某个py文件的用例:pytest 脚本名称.py
3、运行test_sample.py模块里面的某个函数,或者某个类,某个类里面的方法:加-v和不加-v都OK,加-v,即verbose,表示打印的信息更详细
- pytest -v test_class.py::TestClass::test_one
- pytest test_class.py::TestClass::test_one
- pytest test_sample.py::test_answer
4、-m 标记表达式:pytest -m login
将运行用@pytest.mark.login装饰器修饰的所有测试
5、-q 即quiet,表示简短输出,即显示简短的结果,只打印测试用例的执行结果,输入:pytest -q test_sample.py
6、用例执行失败后停止测试:pytest -x test_sample.py
7、用例失败个数达到指定数量后停止测试:pytest --maxfail=1 test_sample.py
8、-k 匹配用例关键字:pytest -k "answer" test_sample.py
参考链接:https://www.cnblogs.com/poloyy/p/12641505.html