python_单元测试unittest测试报告HTMLTestRunner

前提:导入HTMLTestRunner模块--将HTMLTestRunner.py放入python环境变量目录(通过sys.path查看)

步骤1. 创建Testsuite对象 -- unittest.test()

步骤2. 将用例加入到Testsuite -- suite.addTest(GetUserTest('test_get_user'))

步骤3. 创建文件保存测试结果,设置报告内容 -- 注意必须是二进制wb

步骤4. 以报告模版运行testSuite

注意:不能用pycharm的unittest模式运行,否则无法生成报告。 直接运行代码。

import unittest,requests,HTMLTestRunner

class GetUserTest(unittest.TestCase):

def tearDown(self):
print('tear down...')
def setUp(self):
print('tear...up')
def test_get_user(self):
res = requests.get('http://api.map.baidu.com/telematics/v3/weather?location=%E5%98%89%E5%85%B4&output=json&ak=5slgyqGDENN7Sy7pw29IUvrZ').json()
status = res.get('status')
s_status = 201
self.assertEquals(s_status,status)
def test_get_user2(self):
res = requests.get('http://api.map.baidu.com/telematics/v3/weather?location=%E5%98%89%E5%85%B4&output=json&ak=5slgyqGDENN7Sy7pw29IUvrZ').json()
message = res.get('message')
s_message = 'APP'
self.assertIn(s_message,message)

if __name__=='__main__':
suite = unittest.TestSuite()
suite.addTest(GetUserTest('test_get_user'))
suite.addTest(GetUserTest('test_get_user2'))
fr = open('res.html','wb')
report = HTMLTestRunner.HTMLTestRunner(stream=fr,title='测试报告',description='测试报告详情')
report.run(suite)

if __name__=='__main__':
# suite = unittest.makeSuite(GetUserTest) #运行类下面的test所有用例
suite = unittest.defaultTestLoader.discover('.','unit*.py') #运行当前目录下,以unit开头的所有用例
    fr = open('res1.html','wb')
runner = HTMLTestRunner.HTMLTestRunner(
stream=fr,title='测试报告',description='测试报告详情')
runner.run(suite)
posted @ 2017-01-07 23:02  早晚聊出事儿  阅读(2939)  评论(0编辑  收藏  举报