import unittest
import HTMLTestRunner
import HTMLTestRunner_PY3
#HTMLTestRunner_PY3 比 HTMLTestRunner界面更友好
#测试Add
def Add(a,b):
return a+b
class TestAddCase(unittest.TestCase):
#测试集合类的描述
'''测试add方法'''
def test_normal(self):
#测试case的描述
'''正常的'''
result = Add(1,2)
self.assertEqual(3,result)
def test_error1(self):
#测试case的描述
'''异常的不带msg'''
result = Add(1,2)
self.assertEqual(4,result)
def test_error2(self):
#测试case的描述
'''异常的带msg'''
result = Add(1,2)
self.assertEqual(4,result,msg='结果错误')
if __name__ == '__main__':
pass
#不产生测试报告
# unittest.main()
#运行单个测试用例
# test_suite = unittest.TestSuite()#实例TestSuite
# test_suite.addTest(TestAddCase('test_error2'))
# test_suite.addTest(TestAddCase('test_normal'))
# test_suite.addTest(TestAddCase('test_error1'))
#运行某个类里面的所有测试用例方法1
# test_suite = unittest.TestSuite()#实例TestSuite
# load = unittest.TestLoader()#实例TestLoader
# test_suite.addTests(load.loadTestsFromTestCase(TestAddCase))#测试用例加载至test_suite
#运行某个类里面的所有测试用例方法2
# test_suite = unittest.makeSuite(TestAddCase)
#查找某个目录下 的测试用例"20220425_case"用例路径,"test*.py"以test开头
# test_suite = unittest.defaultTestLoader.discover('20220425_case','test*.py')
'''
verbosity关键字是执行测试之后显示测试结果的信息复杂程度
verbosity=0代表得到执行测试的总数和全局结果
verbosity=1 代表得到成功的显示 失败的显示 f 错误的显示 e(如果不写数字默认为1)
verbosity=2可以得到详细的信息
'''
#HTMLTestRunner样式的报告
# with open('report.html','wb') as wf:
# test_run = HTMLTestRunner.HTMLTestRunner(stream=wf,title='unittest_report',description='测试报告')
# test_run.run(test_suite)
#HTMLTestRunner_PY3样式的报告
# with open('report.html','wb') as wf:
# test_run = HTMLTestRunner_PY3.HTMLTestRunner(stream=wf,title='unittest_report',description='测试报告',verbosity=2)
# test_run.run(test_suite)