执行用例

#写一个测试类
import unittest
import HTMLTestRunnerNew   #写好的模块可以直接调用
#import HTMLTest  #测试报告模板
from class_004_unittest.class_003 import TestMathMethod

suite=unittest.TestSuite() #存储用例,创建一个容器,存储用例
#测试用例们是一个类,如何加载用例,首先创建这个测试用例类的实例
#这个类的实例们是一个个的单独的用例
#在模块外的地方用到测试用例类的函数,就要需要创建这个类的实例。

#方法一(添加用例):
#创建实例的时候要不要传参,要看类(继承类)里面有没有初始化函数,这里的继承类是unittest.TestCase ,需要看这个类有没有初始化函数
#添加用例(该方法太繁琐,需要挨条用例添加)
# suite.addTest(TestMathMethod('test_add_two_positive'))
# suite.addTest(TestMathMethod('test_add_two_zero'))
# suite.addTest(TestMathMethod('test_add_two_negtive'))

#方法二:(添加用例)  TestLoader
loader=unittest.TestLoader()  #创建一个加载器
#从测试类里面去找
suite.addTest(loader.loadTestsFromTestCase(TestMathMethod))
#去测试模块里去找
#suite.addTest(loader.loadTestsFromModule(class_003))
#这种方法就要导入具体的模块,而不是类,否则会找不到   from class_004 import class_003

#执行用例  上下文管理器
#file=open("test.txt",'w',encoding='utf-8') #指定输入文件,乱码加encoding
# with open("test.txt",'w',encoding='utf-8') as file:
#     runner=unittest.TextTestRunner(stream=file,descriptions=True,verbosity=0)
#     #stream=None(指定输入文件),descriptions=True(),verbosity=1(0,1,2) 0没有执行状态,1只有执行状态,2最详细,显示每条用例以及执行状态
#     runner.run(suite)

#测试报告
with open("test_report.html",'wb') as file:
    runner=HTMLTestRunnerNew.HTMLTestRunner(stream=file,
                                            verbosity=2,
                                            title="武宗梅的单元测试报告",
                                            description="wuzongmei的第一次单元测试报告",
                                            tester='武宗梅')
    runner.run(suite)
#
12-24 10:50