本文实例为人人分享了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
置信看了本文案例你已控制了要领,更多出色请关注ki4网别的相干文章!
引荐浏览:
python运用unittest测试接口步奏详解
Python怎样统计字母涌现的次数
以上就是Python Unittest怎样举行自动化的单元测试的细致内容,更多请关注ki4网别的相干文章!