之前一直用unittest做测试框架,后来在一次面试中被鄙视,觉得unittest太低端了,Pytest才高大上。那就来了解下Pytest!
首先来看下官方文档对pytest最新版本的介绍:
-
更详细的错误结果输出
-
自动发现测试用例和测试模块
-
可以模块化管理或者参数化化常用的测试资源
-
支持unittest和测试套
-
需要python3.5以上或pypy3以上版本
-
丰富的插件管理,超过315个外部插件和丰富的社区。
安装:
pip install pytest
运行:
import pytest
def test_Demo():
print("this is a pytest Demo")
assert True
if __name__ == '__main__':
pytest.main([("test_pytestDemo.py"),("-s")])
运行结果:
这里我是用命令行运行的,也可以在工具上点击运行,我的py文件名是test_pytestDemo.py。
从Demo可以看出,pytest的执行确实比unittest简单一些,至少不需要每个测试用例都继承unittest.TestCase.
再看,Pytest是如何查找测试用例的?
-
如果没有指定参数的情况下,如果配置了testpaths设置的目录或者当前目录。另外,可以在命令行中指定目录、文件和ids。
-
递归找到的目录,除了被指定了morecursedirs的目录
-
在这些目录中查找test_*.py或者*_test.py的文件,导入他们的测试包
-
从找到的文件中收集测试用例
-
test开头的测试功能和类之外的方法
-
test开头的测试功能和以Test开头的测试类的里面的方法(该类不能复写__init__方法)
-
简单的理解就是只要指定目录和test_*.py或者*_test.py的格式就可以了。
官方文档地址:https://docs.pytest.org/en/stable/
-------------------------------------最后---------------------------------
更多软件测试相关内容请关注“软件测试道与术”公众号或扫描下方二维码