discover查找用例方法,htmltestrunner模块生成报告
加载用例的方法:
方法一:#其他时候一般是使用的discover方法来查找当前工程下符合case数据
discover = unittest.defaultTestLoader.discover(start_dir=casepath, pattern='test*.py', top_level_dir=None)
print(discover)
方法二:
#但是在这里,要想通过结合ddt来获取excel当中的用例数据,并加载用例执行就只能使用unittest当中的Testloader()方法
简单介绍:结合unittest当中的Testloader()
'''
unittest中的TestLoader使用说明
第一步:unittest增加TestSuit()
suite=unittest.TestSuite()
第二步:unittest增加Testloader几种运行方式
unittest.TestLoader().loadTestsFromTestCase(类名)
unittest.TestLoader().loadTestsFromMoudule(模块名)
unittest.TestLoader().loadTestsFromName(方法名)
unittest.TestLoader().loadTestsFromNames(方法名,复数形式)
第三步:在suite中增加运行方法
suite.addTest(suite1)
第四步:运行
unittest.TextTestRunner().run(suite1)
'''
#以下为简单的一个函数使用,还可以将下面的分开写成函数方法并整合一下:------这里不写具体内容,可以看看前面的文章有具体方法介绍
基本思路 比如这样:1加载excel用例到测试套件、2时间函数、3HTMLtestrunner来执行用例并生成报告、4发送邮件
#!/usr/bin/python3 # -*- coding:utf-8 -*- #Author:qika import unittest import time import os from Base import HTMLTestRunner from testcase.test_ddt_loadcase import DataTest def run_case(reportName='report'): #将excel里面的用例数据添加进入到unittest测试套件内 suite = unittest.TestSuite() suite.addTests(unittest.TestLoader().loadTestsFromTestCase(DataTest)) #将test_ddt_loadcase import DataTest 这个类直接添加进去使用 nowtime = time.strftime('%Y-%m-%d %H_%M_%S',time.localtime(time.time())) #声明一个时间--可以写一个时间函数方法(前面的文章有介绍) basedir = os.path.dirname(os.path.dirname(__file__)) #获取到当前文件所在目录,的父级目录 #print(basedir) reportPath = os.path.join(basedir,reportName) #报告存放的文件夹目录 report_abspath = os.path.join(reportPath,nowtime + '_result.html') #实际的执行结果后,报告存放的路径 fp = open(report_abspath,"wb") #打开绝对路径下的报告 runner = HTMLTestRunner.HTMLTestRunner(stream=fp, title='测试报告标题:这是本次自动化测试报告', description="这是本次用例执行情况,如下:", retry=1) #retry表示失败重跑 runner.run(suite)#运行测试套件(从excel读取的数据添加进去的) if __name__ == '__main__': run_case(suite)