1.编写规则
- 测试文件名必须以"test_“开头或者”_test"结尾;
- 测试方法必须以 "test_"开头 ;
- 测试类命名必须以"Test"开头 ;
- pytest是基于unittest框架的扩展 pytest用例格式简单,可以兼容unittest用例,运行不需要main()
2.可以通过@mark来打标签,方便标记和分类
3.用例的前置和后置
(1)模块级
setup_mudule/teardown_module :开始于函数始末,全局的
(2)函数级
setup_function/teardown_function :只对函数生效(不在类中)
(3)类级
setup_class/teardown_class :只在类中前后运行
(4)方法级
setup_method/tear_downmethod :开始于方法始末(在类中)
4.断言
直接使用assert表达式,unittest提供了assertEqual,assertIn,assertTrue
5.失败重跑机制
pytest支持用例失败重跑
6.测试报告
有pytest-HTML,allure插件
7.总结
pytest与unittest的区别及pytest的优点
pytest功能性强, 比unittest强
unittest标准库,python内置的,但是pytest是第三方库,需要下载(pip insall pytest)
pytest断言方便,可以直接assert(python内置的assert关键字
pytest可以自动收集用例,有用例筛选功能,且支持失败重运行,但是unittest没有以上功能
unittest需要去指定文件夹中获取文件(testloader.discover(指定文件夹,test))
pytest与unittest有兼容性,可以使用unittest框架编写代码,但是使用pytest进行运行
pytest不需要继承unittest.TestCase(非强制性),测试用例也可以不用类,可以写成独立的函数