宝塔服务器面板,一键全能部署及管理,送你10850元礼包,点我领取

生成报告的样式:unittest测试框架生成可视化测试报告-BeautifulReport-风君子博客

unittest测试框架生成可视化测试报告-BeautifulReport-风君子博客

在说unittest之前,先说几个概念:

TestCase 也就是测试用例

TestSuite 多个测试用例集合在一起,就是TestSuite

TestLoader是用来加载TestCase到TestSuite中的

TestRunner是来执行测试用例的,测试的结果会保存到TestResult实例中,包括运行了多少测试用例,成功了多少,失败了多少等信息

 

1.单元测试:

  开发自己测自己写的代码;

2.导入模块unittest:

  import unittest  #导入unittest模块

  from BeautifulReport import BeautifulReport  #导入BeautifulReport 报告模板模块

3.运行一个简单的unittest:

主要是体会一下unittest的写法

 1 import unittest   #单元测试模块
 2 
 3 class TestCalcunittest.TestCase):
 4     def test1self):    #函数名要以test开头,否则不会被执行
 5         self.assertEqual1,1)
 6 
 7     def test2self):
 8         self.assertEqual1,2)
 9 
10 unittest.main) #会运行当前python文件里面的所有测试用例

4.unittest单元测试的基本流程:

  用例集/测试套件:存放测试用例的

  ①.先把所有的测试用例都放到用例集

  ②.运行这些测试用例

  ③.产生报告

 

suite方式组织测试用例1:

 1 import unittest   #单元测试模块
 2 from BeautifulReport import BeautifulReport as bf  #导入BeautifulReport模块,这个模块也是生成报告的模块,但是比HTMLTestRunner模板好看
 3 
 4 class TestCalcunittest.TestCase):
 5     def setUpself):  #每个用例运行之前运行的
 6         print'setup是啥时候运行的')
 7 
 8     def tearDownself): #每个用例运行之后运行的
 9         print'teardown是啥时候运行的')
10 
11     @classmethod
12     def setUpClasscls):  #在所有用例执行之前运行的
13         print'我是setUpclass,我位于所有用例的开始')
14 
15     @classmethod
16     def tearDownClasscls): #在所有用例都执行完之后运行的
17         print'我是tearDownClass,我位于多有用例运行的结束')
18 
19     def testccself):    #函数名要以test开头,否则不会被执行
20         '''这是第一个测试用例'''       #用例描述,在函数下,用三个单引号里面写用例描述
21         self.assertEqual1,1)
22         print'第一个用例')
23 
24     def testaaself):
25         '''这个是第二个测试用例'''
26         self.assertEqual1,1)
27         print'第二个用例')
28 
29     def testddself):
30         '''用例描述3'''
31         print'第三个用例')
32 
33     def testbbself):
34         '''用例描述4'''
35         print'第四个用例')
36 
37 suite = unittest.TestSuite)  #定义一个测试集合
38 suite.addTestunittest.makeSuiteTestCalc))  #把写的用例加进来(将TestCalc类)加进来
39 run = bfsuite) #实例化BeautifulReport模块
40 run.reportfilename='test',description='这个描述参数是必填的')

  

使用discover方式组织测试用例:

使用场景:

运行指定目录下的全部测试用例

1 import unittest
2 from BeautifulReport import BeautifulReport    #导入BeautifulReport
3 
4 if __name__ == '__main__':
5     suite_tests = unittest.defaultTestLoader.discover".",pattern="*tests.py",top_level_dir=None)     #"."表示当前目录,"*tests.py"匹配当前目录下所有tests.py结尾的用例
6     BeautifulReportsuite_tests).reportfilename='百度测试报告', description='搜索测试', log_path='.')    #log_path='.'把report放到当前目录下

 

运行指定测试类中的case,suite方式组织测试用例: 

使用场景:

假如有测试类AB,类中各有测试方法1,2,3

假如想仅运行测试类A中方法1,测试类B中的方法3,可以使用这种方式组织测试用例

主要是为了在case量很大时,很方便的调试

 1 import unittest
 2 import os
 3 from BeautifulReport import BeautifulReport as bf
 4 from case.subway.test_subway import Subway
 5 
 6 #仅运行指定的case Subway是类名,test_subway_001是类中的测试方法名
 7 caseList=[Subway"test_subway_001")]
 8 #使用suite组织测试用例
 9 suite = unittest.TestSuite)
10 suite.addTestscaseList)
11 #运行并生成测试报告 
12 run = bfsuite)
13 run.reportfilename="test", description="测试报告")

 

目录结构:

一个文件夹下有若干测试类,每个测试类正可能又会有若干个测试用例

unittest测试框架生成可视化测试报告-BeautifulReport-风君子博客

 

代码结构:

unittest测试框架生成可视化测试报告-BeautifulReport-风君子博客

 

谢谢二位大神:

Python Selenium 之生成BeautifulReport可视化报告

单元测试unittest及报告生成(两种报告模板)