首页 > 其他 > 详细

为什么要用unittest

时间:2019-06-30 11:48:47      阅读:131      评论:0      收藏:0      [点我收藏+]
‘‘‘为什么要使用单元测试框架?:
1.当用例很多的时候用来组织用例和执行用例
2.提供丰富的比较方法
3.提供丰富的日志‘‘‘

import unittest
import HTMLTestRunner
import os

path = os.getcwd()
class Test_baidu(unittest.TestCase):
    def setUp(self):
        print(每一个开始了-----------)

    def test_1(self):
        print(test_1)
        self.assertEqual(1,2,msg=1!=2)

    def test_2(self):
        print(test_2)
        self.assertIsInstance([1,2],list)

    @unittest.skip    #虽然这个方法不执行,但是setup和teardown还要执行的
    def test_3(self):
        print(test_3)
        self.assertIs(1,1)

    def tearDown(self):
        print(每一个结束了----------)

    @classmethod
    def setUpClass(cls):
        print(大项目开是啦+++++++++)

    @classmethod
    def tearDownClass(cls):
        print(大项目结束了+++++++++++)


if __name__ == __main__:
    suit = unittest.TestSuite()
    suit.addTest(Test_baidu(test_2))   #先把要执行的顺序,一个一个添加进去  ---就是组织用例
    suit.addTest(Test_baidu(test_1))
    suit.addTest(Test_baidu(test_3))   #有了skip的存在,加进去也没有用的
    runner = unittest.TextTestRunner()  #把要执行的案例添加到suit之后,用TextTestRunner()对象就可以运行了  --组织好用例一键执行
    # discover = unittest.TestLoader().discover(path)
    # runner1 = HTMLTestRunner.HTMLTestRunner()
    # runner1.run(discover)
    runner.run(suit)

上面是个 test*.py,,这个是main.py

‘‘‘当用例很少的时候可以用suit一个一个的添加。
我们要把所有的用例都放在TEST_Case作用,里面有很多test*.py,   现在只有一个u1.py‘‘‘

import unittest,os
path = os.getcwd()
print(path)


discover = unittest.defaultTestLoader.discover(path,pattern=u*.py) #discover 返回的就是suit,所以Testloader就是把所有的案例加载到suit中。

runner = unittest.TextTestRunner()
runner.run(discover)


if __name__ == __main__:
    unittest.main(verbosity=1)

skip跳过测试用例

import unittest
import HTMLTestRunner
import os

path = os.getcwd()
class Test_baidu(unittest.TestCase):
    def setUp(self):
        print(每一个开始了-----------)

    def test_1(self):
        print(test_1)
        self.assertEqual(1,2,msg=1!=2)

    def test_2(self):
        print(test_2)
        self.assertIsInstance([1,2],list)

    @unittest.skip    #虽然这个方法不执行,但是setup和teardown还要执行的
    def test_3(self):
        print(test_3)
        self.assertIs(1,1)


    @unittest.skipIf(3<2,当条件为真时跳过测试,条件为假的时候执行案例)
    def test_4(self):
        print(test_4)
        self.assertIs(1,1)

    @unittest.skipUnless(3<2,当条件为假的时候不执行测试用例)  #unless 除非
    def test_5(self):
        print(test_5)
        self.assertIs(1,1)


    def tearDown(self):
        print(每一个结束了----------)

    @classmethod
    def setUpClass(cls):
        print(大项目开是啦+++++++++)

    @classmethod
    def tearDownClass(cls):
        print(大项目结束了+++++++++++)


if __name__ == __main__:
    unittest.main(verbosity=2)

生成html文件

import unittest,os
from HTMLTestRunner import HTMLTestRunner
path = os.getcwd()
print(path)


discover = unittest.defaultTestLoader.discover(path,pattern=u*.py) #discover 返回的就是suit,所以Testloader就是把所有的案例加载到suit中。

htmlpath = path+r\report.html
print(htmlpath)

f = open(htmlpath,wb)
runner = HTMLTestRunner(stream=f,verbosity=2,title=测试报告,description=这个是自己的的测试结果)  #htmltestrunner 就是对testrunner的封装

runner.run(discover)
f.close()




if __name__ == __main__:
    unittest.main(verbosity=1)

 

import time
now = time.strftime("%Y-%m-%d %H-%M-%S")
‘‘‘原来的html文件名是写死的,重新生成就会覆盖,所有让每次名字不一样加入时间(文件名好像不能用:一直报错)‘‘‘
htmlpath = F:/asus/auto_file/unittest_html+/+now+report.html

f = open(htmlpath,wb)

runner = HTMLTestRunner(stream=f,verbosity=2,title=测试报告,description=这个是自己的的测试结果)  #htmltestrunner 就是对testrunner的封装

runner.run(discover)
f.close()

 

为什么要用unittest

原文:https://www.cnblogs.com/tarzen213/p/11108860.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!