欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

python unittest使用HTMLTestRunner.py生成测试html报告

程序员文章站 2022-05-14 18:51:03
...

试验HTMLTestRunner产生测试报告(python3)

HTMLTestRunner.py  https://github.com/linyuli861/Automated-Test.git

目录:

python unittest使用HTMLTestRunner.py生成测试html报告

一个加减乘除的MathDemo.py:

#coding:utf-8
def add(a,b):
 return a+b
def minus(a,b):
 return a-b
def multi(a,b):
 return a*b
def divide(a,b):
 return a/b

测试加法和减法(start1.py):

import unittest
from MathDemo import *
class TestFunc(unittest.TestCase):

	def setUp(self):
            print("do something before test")
	def tearDown(self):
            print("do something after test")
	def test_add(self):
            print("add:")
            self.assertEqual(3,add(1,2))
	def test_minus(self):
            print("minus")
            self.assertEqual(3,minus(5,2))

if __name__ == "__main__":
	unittest.main(verbosity=2)

测试乘法和除法(start2.py):

import unittest
from MathDemo import *
class TestFunc(unittest.TestCase):

	def setUp(self):
            print("do something before test")
	def tearDown(self):
            print("do something after test")
	def test_multi(self):
            print("multi:")
            self.assertEqual(2,multi(1,2))
	def test_minus(self):
            print("divide")
            self.assertEqual(2,divide(4,2))

if __name__ == "__main__":
	unittest.main(verbosity=2)

以上三个文件放在case目录下;

defaultTestLoader.discover:

用discover()来加载测试多个测试用例,再用TextRunner类的run()方法去一次执行多个脚本的用例,达到批量执行的效果。

discover方法里面有三个参数:

     case_dir:这个是待执行用例的目录。

     pattern:这个是匹配脚本名称的规则,

     top_level_dir:这个是顶层目录的名称,一般默认等于None就行了。

加载用例不多时,也可以用suite.addTest()一个一个加

测试套件:

import unittest
import os
import HTMLTestRunner
import time
case_path=os.path.join(os.getcwd(),"case")#用例路径,
def all_cases():
    discover=unittest.defaultTestLoader.discover(case_path,pattern="start*.py",top_level_dir=None)
    print(discover)
    return discover

now=time.strftime("%Y-%m-%d %H_%M_S",time.localtime()) #获得当前时间并格式化为“年月日时分秒”
filename="./report/MathTestIn_"+now+"_result.html"  #测试报告放在同级目录下一个report文件夹内
fp=open(filename,'wb') 

if __name__ == "__main__":
    #调用HTMLTestRunner运行,生成HTML文档报告
    runner=HTMLTestRunner.HTMLTestRunner(stream=fp,title=u'加减乘除测试',description=u'用例执行情况')#unittest.TextTestRunner(verbosity=2)
    runner.run(all_cases())
fp.close()

参考:https://www.jb51.net/article/147077.htm

相关标签: Python笔记