day11_unittest生成测试报告

HTMLTestRunner是帮助产生测试报告的,把HTMLTestRunner.py这个文件放到环境变量里,最简单的方法就是把HTMLTestRunner.py复制到External Libraries下面的任一目录里,这里我是放到了Lib目录下,以后即使在别的目录下也可以使用

TestCase是测试用例
TestSuite是用例集合
TestLoader就是查找测试用例的,加载TestCase到TestSuite中
TestRunner是来执行测试用例的,测试的结果会保存到TestResult实例中,包括运行了多少测试用例,成功了多少,失败了多少等信息

import unittest
import HTMLTestRunner


def add(a, b):
return a + b


class AddTest(unittest.TestCase):
def test_normal(self):
res = add(1, 1)
self.assertEqual(2, res)

def test_error(self):
res = add(1, 1)
self.assertEqual(1, res)

def setUp(self):
print('setUp')

def tearDown(self):
print('tearDown')

@classmethod
def setUpClass(cls):
print('setUpClass')

@classmethod
def tearDownClass(cls):
print('tearDownClass')


if __name__ == '__main__':
# suite = unittest.TestSuite() # 定义一个空的测试集合,suite.addTest(类名('用例名称'))是添加某个测试用例
# suite.addTest(unittest.makeSuite(AddTest)) # 一次性加载一个类文件下所有测试用例到suite中去
test_suite = unittest.makeSuite(AddTest) # 这行等于上面两行
fw = open('ssj.html', 'wb') # wb写入模式,b是bytes,可以写入图片
runner = HTMLTestRunner.HTMLTestRunner(stream=fw, title='测试报告', description='2020年第一个测试报告')
runner.run(test_suite)
fw.close()

运行完成后在pycharm里打印出F..代表用例通过,F代表用例失败,如下图:

在当前目录里会生成ssj.html这个文件,点开ssj.html在当前页面点击右上角的任意一个浏览器,如下图:

以google浏览器为例会在浏览器里生成测试报告,如下图:

点击All会显示具体用例执行的情况,点开fail会看到具体的报错信息,HTMLTestRunner这个模块产生的报告,是给咱们自己看的,这个报告看着不是很好看,现在用BeautifulReport来生成测试报告,把BeautifulReport.zip解压到任一目录下,然后复制第二层文件夹到环境变量里,就是环境变量Lib下的site-packages文件夹下,我放到D:\new_python\Lib\site-packages这个路径下,然后导入BeautifulReport,通过如下代码实现:

import unittest
import BeautifulReport


def add(a, b):
return a + b


class AddTest(unittest.TestCase):
def test_normal(self):
res = add(1, 1)
self.assertEqual(2, res)

def test_error(self):
res = add(1, 1)
self.assertEqual(1, res)

def setUp(self):
print('setUp')

def tearDown(self):
print('tearDown')

@classmethod
def setUpClass(cls):
print('setUpClass')

@classmethod
def tearDownClass(cls):
print('tearDownClass')


if __name__ == '__main__':
test_suite = unittest.makeSuite(AddTest)
bf = BeautifulReport.BeautifulReport(test_suite)
bf.report(filename='0605_new_report.html', description='更好看的测试报告') # 还可以传一个log_path,想在哪生成报告就写上具体的路径,如果没写log_path,就在当前目录下生成测试报告
print(bf.failure_count) # 失败次数
print(bf.success_count) # 通过次数
posted @ 2018-03-19 14:26  laosun0204  阅读(110)  评论(0编辑  收藏  举报