#!/usr/bin/env python
# coding=utf-8
# 文件名:test_case01.py
# coding=utf-8
import unittest
from HTMLTestRunner import HTMLTestRunner
from datetime import datetime


class TestCase01(unittest.TestCase):  # 继承unittest.TestCase

    @classmethod
    def setUpClass(cls):
        print('这是所有case的前置条件01')

    @classmethod
    def tearDownClass(cls):
        print('这是所有case的后置条件01')

    def setUp(self):
        print('这是每条case的前置条件01')

    def tearDown(self):
        print('这是每条case的后置条件01')
        # 关闭打开的文件

    def testThird_03(self):  # 测试用例的命名必须以test开头,否则不予执行
        print('01: 第三条case')

    def testFirst_01(self):
        print('01: 第一条case')

    @unittest.skip('不执行这条case')  # 跳过这条case
    def testSecond_02(self):
        print('01: 第二条case')

    @unittest.skipIf(3 > 2, '条件为真,跳过该用例')
    def testFourth_04(self):
        print('01: 第四条case')


if __name__ == '__main__':
    # # unittest.main() # 使用main()直接运行时,将按case的名称顺序执行
    # suite = unittest.TestSuite()
    # suite.addTest(TestCase01('testThird_03'))  # 将需要执行的case添加到Test Suite中,没有添加的不会被执行
    # suite.addTest(TestCase01('testSecond_02'))
    # suite.addTest(TestCase01('testFirst_01'))
    # unittest.TextTestRunner().run(suite)  # 将根据case添加的先后顺序执行

    suite_list = [TestCase01('testThird_03'), TestCase01('testSecond_02'), TestCase01('testFirst_01')]
    # runner = unittest.TextTestRunner()
    # for test_case in suite_list:
    #     runner.run(test_case)

    # 生成HTML测试报告:
    with open(datetime.now().date().isoformat()+'_report.html', 'wb') as fp:
        runner = HTMLTestRunner(stream=fp, title='主标题-测试报告', description='小标题-test_report')
        for test_case in suite_list:
            runner.run(test_case)

 

Logo

CSDN联合极客时间,共同打造面向开发者的精品内容学习社区,助力成长!

更多推荐