zoukankan      html  css  js  c++  java
  • python单元测试

    # unittest 单元测试的一个框架
    # 什么框架
    # 一堆工具的集合。
    # TestCase
    # TestSuite 测试套件,多个用例在一起
    # TestLoader是用来加载TestCase到TestSuite中的
    # TestRunner是来执行测试用例的,测试的结果会保存到TestResult实例中,
    # 包括运行了多少测试用例,成功了多少,失败了多少等信息
    #
    # 1、用例必须以test开头
    # 2、用例执行的顺序是安装字母排列的顺序来的

    import unittest
    import HTMLTestRunner
    from BeautifulReport import BeautifulReport
    def calc(x,y):
    return x+y

    class TestCalc(unittest.TestCase):
    def test_pass_case(self):
    '''这个通过的测试用例'''
    print('这个通过用例')
    res = calc(1,2)
    self.assertEqual(3,res)
    self.assertNotEqual(2,3)#返回的结果不一样

    def setUp(self):
    print('我是setUp。。')
    #每个用例运行之前都会执行它
    def tearDown(self):
    #每个用用例运行完之后都会执行它
    print('我是tearDown')

    @classmethod
    def setUpClass(cls):
    print('我是setupClass')
    #所有的用例执行之前执行一次

    @classmethod
    def tearDownClass(cls):
    print('我是tearDownClass')
    #所用的用例都运行完之后执行一次

    def test_a(self):
    '''这个普通的测试用例'''
    print('a')

    def test_fail_case(self):
    '''这个是失败的测试用例'''
    print('这个是失败的测试用例')
    res = calc(9,8)
    self.assertEqual(98,res)
    def test_haha(self):
    '''哈哈哈'''
    self.assertEqual(1,2)

    if __name__ =='__main__':
    unittest.main() #他会帮你运行当前这个python里面所有的测试用例。
    # suite = unittest.TestSuite()#定义一个测试套件
    # # suite.addTest(TestCalc('test_pass_case'))
    # # suite.addTest(TestCalc('test_a'))
    # # suite.addTest(TestCalc('test_fail_case')) #单个添加用例的
    # suite.addTests(unittest.makeSuite(TestCalc)) #这个类里面的所有测试用例
    # # f = open('report.html','wb')#打开一个测试报告的文件
    # # runner = HTMLTestRunner.HTMLTestRunner(stream=f,title='牛寒阳测试结果',
    # # description='描述')
    # # runner.run(suite) #运行 难看的报告
    # result = BeautifulReport(suite)
    # result.report(filename='测试报告', description='描述', log_path='.')


    #运行多个目录下的单元测试文件
    import unittest
    from BeautifulReport import BeautifulReport
    import xmlrunner

    suite = unittest.TestSuite()
    all_case = unittest.defaultTestLoader.discover('cases','test*.py')
    #
    # for case in all_case:
    # suite.addTests(case)
    [ suite.addTests(case) for case in all_case ] #和上面的注释代码是一样的
    result = BeautifulReport(suite)
    result.report(filename='很多测试用例.html',description='这个是描述',log_path='.')
    # runner = xmlrunner.XMLTestRunner('.') #这个是为了产生报告给Jenkins用
    # runner.run(suite) #运行用例



  • 相关阅读:
    for, 类型转换和使用方法
    笔记,随时更改
    控制流程之while循环, for循环
    赋值,逻辑,运算符, 控制流程之if 判断
    常量,基本数据类型,输入输出,基本运算符
    介绍python由来, 安装python3.8.3 及其变量的定义, 小整数池
    数组去重多个条件
    vue 自定义指令
    截取指定名字的url参数
    常用的js
  • 原文地址:https://www.cnblogs.com/zhufb/p/8532849.html
Copyright © 2011-2022 走看看