TestCase.assertNotAlmostEqual(first, second[, places[, msg]])
TestCase.failIfAlmostEqual(first, second[, places[, msg]])
TestCase.assertRaises(exception, callable, ...)
TestCase.failUnlessRaises(exception, callable, ...)
TestCase.failIf(expr[, msg])
TestCase.assertFalse(expr[, msg])
TestCase.fail([msg])
Python - pytest目录
pytest是Python的单元测试框架,同自带的unittest框架类似,但pytest框架使用起来更简洁,效率更高 。
pytest特点
安装
测试
在测试之前要做的准备
我的演示脚本处于这样一个的目录中:
踩坑:你创建的pytest脚本名称中不允许含有.,比如1.简单上手.py,这样会报错 。当然,可以这么写1-简单上手.py
demo1.py :
上例中,当我们在执行(就像Python解释器执行普通的Python脚本一样)测试用例的时候,pytest.main(["-s", "demo1.py"]) 中的传参需要是一个元组或者列表(我的pytest是5.2.2版本) , 之前的版本可能需要这么调用 pytest.main("-s demo1.py") , 传的参数是str的形式,至于你使用哪种,取决于报不报错:
遇到上述报错,就是参数需要一个列表或者元组的形式 , 而我们使用的是str形式 。
上述代码正确的执行结果是这样的:
大致的信息就是告诉我们:
pytest.main(["-s", "demo1.py"])参数说明
除了上述的函数这种写法 , 也可以有用例类的写法:
用法跟unittest差不多,类名要以Test 开头,并且其中的用例方法也要以 test 开头,然后执行也一样 。
执行结果:
那么,你这个时候可能会问,我记得unittest中有setup和teardown的方法,难道pytest中没有嘛?你怎么提都不提?稳住,答案是有的 。
接下来,我们来研究一下pytest中的setup和teardown的用法 。
我们知道,在unittest中,setup和teardown可以在每个用例前后执行,也可以在所有的用例集执行前后执行 。那么在pytest中,有以下几种情况:
来一一看看各自的用法 。
模块级别setup_module/teardown_module
执行结果:
类级别的setup_class/teardown_class
执行结果:
类中方法级别的setup_method/teardown_method
执行结果:
函数级别的setup_function/teardown_function
执行结果:
小结
该脚本有多种运行方式,如果处于PyCharm环境 , 可以使用右键或者点击运行按钮运行,也就是在pytest中的主函数中运行:
也可以在命令行中运行:
这种方式,跟使用Python解释器执行Python脚本没有什么两样 。也可以如下面这么执行:
当然,还有一种是使用配置文件运行,来看看怎么用 。
在项目的根目录下,我们可以建立一个pytest.ini 文件,在这个文件中,我们可以实现相关的配置:
那这个配置文件中的各项都是什么意思呢?
首先,pytest.ini 文件必须位于项目的根目录,而且也必须叫做 pytest.ini。
其他的参数:
OK,来个示例 。
首先,(详细目录参考开头的目录结构)在scripts/test_case_01.py 中:
在scripts/test_case_dir1/test_case02.py 中:
那么,在不同的目录或者文件中,共有5个用例将被执行,而结果则是两个失败三个成功 。来执行验证一下,因为有了配置文件,我们在终端中(前提是在项目的根目录) , 直接输入pytest 即可 。
由执行结果可以发现,2 failed, 3 passed ,跟我们的预期一致 。
后续执行相关配置都来自配置文件,如果更改,会有相应说明,终端都是直接使用pytest 执行 。
我们知道在unittest中,跳过用例可以用skip ,那么这同样是适用于pytest 。
推荐阅读
- ios装旧版手机qq,苹果手机旧版本
- 安卓手机怎么读ios系统文件,安卓系统怎么读文字
- 格斗破解游戏下载,格斗破解版游戏大全内购破解无限版
- 视频号如果游戏直播,视频号如何直播其他游戏
- go语言版本下载 go语言安装包
- tiktok安卓手机怎么在使用,安卓上tiktok
- 固态硬盘怎么判断真伪辨别,固态硬盘如何辨别真假
- 微视直播怎么开通橱窗卖货的简单介绍
- mysql表的主键怎么弄 mysql主键的建立3种方法