视频1 视频21 视频41 视频61 视频文章1 视频文章21 视频文章41 视频文章61 推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37 推荐39 推荐41 推荐43 推荐45 推荐47 推荐49 关键词1 关键词101 关键词201 关键词301 关键词401 关键词501 关键词601 关键词701 关键词801 关键词901 关键词1001 关键词1101 关键词1201 关键词1301 关键词1401 关键词1501 关键词1601 关键词1701 关键词1801 关键词1901 视频扩展1 视频扩展6 视频扩展11 视频扩展16 文章1 文章201 文章401 文章601 文章801 文章1001 资讯1 资讯501 资讯1001 资讯1501 标签1 标签501 标签1001 关键词1 关键词501 关键词1001 关键词1501 专题2001
PythonUnittest怎么进行自动化的单元测试
2020-11-09 08:43:08 责编:小OO
文档
这次给大家带来Python Unittest怎么进行自动化的单元测试,Python Unittest进行自动化单元测试的注意事项有哪些,下面就是实战案例,一起来看一下。

本文实例为大家分享了Python Unittest自动化单元测试框架的具体代码,供大家参考,具体内容如下

1、python 测试框架(本文只涉及 PyUnit)

参考地址

2、环境准备

首先确定已经安装有Python,之后通过安装PyUnit,Python版本比较新的已经集成有PyUnit(PyUnit 提供了一个图形测试界面UnittestGUI.py)
参考:查看地址

3、代码实例

使用的IDE为 PyCharm,DEMO结构如图

1.简单地一个实例

# Test002_Fail.py
# -*- coding:utf-8 -*-
import unittest
class Test002_Fail(unittest.TestCase):
 #测试用例前执行
 def setUp(self):
 print 'Case Before'
 pass
 #测试用例后执行
 def tearDown(self):
 print 'Case After'
 pass
 #测试用例1
 def test_Case1(self):
 a = 3
 b = 2
 self.assertEqual(a+b,4,'Result Fail')
 #测试用例2
 def test_Case2(self):
 a = 2
 b = 3
 self.assertEqual(a*b,7,'Result Fail')
if name == 'main':
 unittest.main()

2.当case比较多的时候,可以使用Suite来管理多个case,suite 可以看做是一个case 的容器,可以装很多的case

# SuiteDemo.py
# -*- coding:utf-8 -*-
#一个类,添加测试集
import unittest
class SuiteDemo(unittest.TestCase):
 #测试用例前执行
 def setUp(self):
 print 'Case Before'
 pass
 #测试用例后执行
 def tearDown(self):
 print 'Case After'
 pass
 def test_Case1(self):
 a = 3
 b = 2
 self.assertEqual(a+b,5,'Result Fail')
 print 'Case1'
 def test_Case2(self):
 a = 2
 b = 3
 self.assertEqual(a*b,6,'Result Fail')
 print 'Case2'
#定义一个测试集合,方便添加Case
def suite():
 suiteTest = unittest.TestSuite()
 suiteTest.addTest(SuiteDemo("test_Case1"))
 suiteTest.addTest(SuiteDemo("test_Case2"))
 return suiteTest
#默认运行时通过 Suite 运行
if name == 'main':
 unittest.main(defaultTest='suite')

3.Suite 和 Case可以分开写在不同的Python文件中,这样方便区分case模块和Suite管理模块,在测试测试的时候只需要在case模块里面添加case,之后添加到Suite模块即可了

case模块

# TestCaseDemo
# -*- coding:utf-8 -*-
import unittest
class TestCaseDemo(unittest.TestCase):
 def setUp(self):
 pass
 def tearDown(self):
 pass
 def test_Case1(self):
 print 'test_Case1'
 def test_Case2(self):
 print 'test_Case2'
 def test_Case3(self):
 print 'test_Case3'
 def test_Case4(self):
 print 'test_Case4'

接下来为三个Suite模块,都是先导入Case模块,之后添加Suite,再在Suite里面添加Case,最后执行的时候需要使用TestRunner,这个TestRunner 相当于Suite 的执行器

简单地TestSuite:

# TestCase_Demo1.py
# -*- coding:utf-8 -*-
#集合写入一个方法,main调用并启动
import unittest
from TestCase_Demo import TestCaseDemo
#添加一个测试集合,并添加Case
def suite():
 suiteTest = unittest.TestSuite()
 suiteTest.addTest(TestCaseDemo('test_Case1'))
 return suiteTest
#指定并启动测试集合,运行集合方法
if name == 'main':
 runner = unittest.TextTestRunner()
 runner.run(suite())

也可以不定义Suite方法,直接在main方法中进行Case的添加,之后执行

# TestCase_Demo2.py
# -*- coding:utf-8 -*-
#集合可以写在main
import unittest
from TestCase_Demo import TestCaseDemo
#指定并启动测试集合
if name == 'main':
 #添加测试集合Case,并启动
 suiteTest = unittest.TestSuite()
 suiteTest.addTest(TestCaseDemo('test_Case1'))
 suiteTest.addTest(TestCaseDemo('test_Case2'))
 #直接启动集合
 runner = unittest.TextTestRunner()
 runner.run(suiteTest)

可以把不同的Case 添加道不同的Suite里面,同样,可以给Suite分组,用于区分不同的Case,并且,Suite 之间还可以包含

# TestCase_Demo3.py
# -*- coding:utf-8 -*-
#包含集合,多集合
import unittest
from TestCase_Demo import TestCaseDemo
#添加不同的合集
def Suite1():
 suiteTest = unittest.TestSuite()
 suiteTest.addTest(TestCaseDemo("test_Case1"))
 suiteTest.addTest(TestCaseDemo("test_Case2"))
 print 'Suite1 运行'
 return suiteTest
def Suite2():
 suiteTest = unittest.TestSuite()
 suiteTest.addTest(TestCaseDemo("test_Case3"))
 suiteTest.addTest(TestCaseDemo("test_Case4"))
 print 'Suite2 运行'
 return suiteTest
#包含所有的Suite
def AllSuite():
 allTest = unittest.TestSuite((Suite1(),Suite2()))
 return allTest
#运行的时候,可以根据不同的要求,运行不同的Suite,或者全部运行,这样就方便管理每次运行的case
if name == 'main':
 runner = unittest.TextTestRunner()
 runner.run(AllSuite())

4.小结

PyUnit 是Python的一个单元测试框架,使用它可以方便的管理自动化运行的case.
在Python 中,每一个方法 只要方法名使用test_ 开头的都被作为是一个用例,都可以看做成一个case,这里介绍了使用Suite管理Case,并且分组运行Case,还有其他很多的功能,请参考: unittest — Unit testing framework

相信看了本文案例你已经掌握了方法,更多精彩请关注Gxl网其它相关文章!

推荐阅读:

python使用unittest测试接口步奏详解

Python怎么统计字母出现的次数

下载本文
显示全文
专题