python-unittest学习

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

TestCase 也就是测试用例

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

TestLoader是用来加载TestCase到TestSuite中的

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

 

先写一个简单的单元测试:

import unittest
# 1.定义一个测试类,类下面有测试方法
# 2.方法中调用assertEqual做校验
# 3.最后用unittest.main()运行所有测试用例

class My(unittest.TestCase):
def testa(self):
self.assertEqual(1,1)

def kkk(self):#不是以test开头的方法不会被执行
self.assertEqual(1,2)

def test_kkk2(self):
self.assertEqual(1,3)

class My2(unittest.TestCase):
def test_kkk3(self):
'''这是kkk3的测试用例'''
self.assertEqual(1,1)

def test_kkk4(self):
'''这是test4'''
self.assertEqual(1,2)
if __name__ =="__main__":
unittest.main() #unittest.main() 会找到你所有的测试用例,并将起全部运行

===================================================
再来一个 单元测试2--会生成测试报告的单元测试

import unittest,HTMLTestRunner,xmlrunner

class My(unittest.TestCase):
def test_kkk(self):
self.assertEqual(1,1)

def kkk(self): #不是以test开头的测试用例 不会被执行
self.assertEqual(1,2)

def test_kkk2(self):
'''这是用例2''' #这是加用例的注释
self.assertEqual(1,2)

class My2(unittest.TestCase):
def test_kkk3(self):
'''这是用例3''' #这是加用例的注释
self.assertEqual(2,2)

if __name__ == '__main__':
# unittest.main() #unittest.main() 会找到你所有的测试用例,并将起全部运行
suite = unittest.TestSuite() #定义一个空的测试集合
suite.addTest(My('test_kkk2')) #导入单个测试用例
suite.addTest(unittest.makeSuite(My2)) #导入类下面的全部测试用例
# fw = open('report_kkk.html','wb') #二进制的意思,就是有时候保存一些图片或者文本文件的时候就用wb
# runner = HTMLTestRunner.HTMLTestRunner(stream=fw,title='kkk自动化测试报告',description='描述描述')
# runner.run(suite)

#----------下面这个是生成xml格式的测试报告的代码--------------
    # runner2 = xmlrunner.XMLTestRunner(output='.')  #点 代表当前目录
runner2 = xmlrunner.XMLTestRunner(output='report') #report 为指定目录名
runner2.run(suite)

这是单元测试2的report


下面是xml格式的测试报告--xml格式主要是个后面集成到jenkins用的

 


 

posted @ 2017-12-30 11:53  笔案  阅读(467)  评论(0编辑  收藏  举报