unittest单元测试框架 + HTMLReport

unit单元测试框架使用方法一:

  1. 直接调用已有的测试用例类运行:
  2. UnittestA.py文件:
import unittest
class myut(unittest.TestCase):
    @classmethod  # 类方法,结束测试调用一次
    def tearDownClass(cls):
        print("tearDownClass.")

    @classmethod # 类方法,开始测试调用一次
    def setUpClass(cls):
        print("setUpClass.")

    # 每个测试用例执行后调用一次
    def tearDown(self):
        print("tearDown.")

    # 每个测试用例执行前调用一次
    def setUp(self):
        print("setUp.")

    # @unittest.skip("jump A")
    def test_A(self):
        '''测试A描述'''
        # print("test_A")
        print(self.id())
        self.assertEqual(1, 1, msg="ERROR......")

    def test_B(self):
        '''测试B描述'''
        print(self.id())
        self.assertEqual(2, 2)
  1. 执行用例脚本文件Mytest.py
  2. Mytest.py
import unittest
import HTMLReport   #pip install HTMLReport 下载

if __name__ == "__main__":
    testsuite = unittest.TestSuite()
    testsuite.addTest(myut("test_B"))  # 添加的测试会被执行
    testsuite.addTest(myut("test_A"))
    runner = HTMLReport.TestRunner(output_path="f:\\result")  #生成测试报告
    run = HTMLReport.TestRunner()
    result = runner.run(testsuite)
    print("{}".format("*"*20))
    print(result.success_count)

unit单元测试框架使用方法二,调用目录下测试脚本内的测试用例:

  1. 测试脚本文件:Test_B.py
  2. Test_B.py
import unittest

class testb(unittest.TestCase):
    def test_X(self):
        print(self.id())

    def test_Y(self):
        print(self.id())

    def test_Z(self):
        print(self.id())

调用脚本:

import unittest
import HTMLReport

if __name__ == "__main__":
    start_dir = "./"
    testload = unittest.defaultTestLoader.discover(start_dir=start_dir, pattern="test_*.py")  #查询当前目录下测试类
    runner = HTMLReport.TestRunner(output_path="f:\\result")  #生成测试报告
    result = runner.run(testload)
    print("{}".format("*"*20))
    print(result.success_count)

 

posted @ 2019-02-28 13:32  压力山大80  阅读(684)  评论(0编辑  收藏  举报