前言:
unittest以一种面向对象的方式产生了一些很重要的概念,如果没有面向对象基础,请补充python面向对象知识
unittest简介
unittest是Python单元测试框架,类似于Java的JUnit框架。以下是unittest官方文档demo,
这是对三个字符串方法(upper、isupper、split)进行单元测试的简短脚本:
import unittest
class TestStringMethods(unittest.TestCase):
def test_upper(self):
self.assertEqual('foo'.upper(), 'FOO')
def test_isupper(self):
self.assertTrue('FOO'.isupper())
self.assertFalse('Foo'.isupper())
def test_split(self):
s = 'hello world'
self.assertEqual(s.split(), ['hello', 'world'])
# check that s.split fails when the separator is not a string
with self.assertRaises(TypeError):
s.split(2)
if __name__ == '__main__':
unittest.main()
运行结果:3个测试用例运行成功,用例运行结果为pass
...
----------------------------------------------------------------------
Ran 3 tests in 0.000s
OK
unittest不仅能够支持简单的单元测试和复杂的功能测试, 还可以用来做等UI自动化测试、接口自动化测试
unittest的意义:
少数的自动化测试用例维护起来看起来是很容易的,但随着项目不断更新迭代,测试套件将持续的增长,测试用例脚本也将变得越来越臃肿庞大,所以我们需要用到一些测试框架对用例的管理和维护。
1.灵活的组织管理自动化用例、冒烟测试用例
2.让用例高效的执行 :可以批量运行大量用例,选中部分用例运行
3.用例的断言:方便验证测试用例的结果
4.测试报告:自动生成html形式测试报告
unittest基础语法规则:
1.一个用例class继承unittest.TestCase类,用例类里面的方法即是一个个具体的测试用例TestCase
类方法名称必须以 test 开头,否则是不被unittest识别成用例
类的名称可以不以test开头
# @Author : 一诺教育
# @File : 0728
import unittest
class YiNuo(unittest.TestCase):
'''
YiNuo:代