#coding=utf-8
# from HTMLTestRunner_cn import HTMLTestRunner
from unittestreport import TestRunner
import unittest
import time
import os
# from common.send_email import SendEmail
#在测试报告目录下找到最新的报告文件,打印且返回最新报告的名称
def find_new_report(report_dirc):
lists = os.listdir(report_dirc)
lists.sort(key=lambda fn:os.path.getmtime(report_dirc+"\\"+fn))
new_report = os.path.join(report_dirc,lists[-1])
print(new_report)
return new_report
def all_case():
#执行用例的目录
curent_dirc=os.path.dirname(os.path.realpath(__file__))
case_dir = curent_dirc + r"\\test_case"
testcase = unittest.TestSuite()
discover = unittest.defaultTestLoader.discover(case_dir,pattern="test*.py",top_level_dir=None)
#discover方法筛选出来的用例,循环添加到测试套件中
for test_suite in discover:
for test_case in test_suite:
#添加测试用例到testcase
testcase.addTest(test_case)
print(testcase)
return testcase
if __name__ =="__main__":
curent_dirc=os.path.dirname(os.path.realpath(__file__))
report_dirc = curent_dirc + "\\test_report"
now = time.strftime("%Y-%m-%d")
report_name = report_dirc+"\\"+"双中台"+now+"自动化测试报告.html"
fp = open(report_name,"wb")
# runner = HTMLTestRunner(stream=fp,
# title="双中台自动化测试报告",
# description=None)
# runner.run(all_case())
runner = TestRunner(suite=all_case(),filename=report_name,report_dir=report_dirc,title='双中台自动化测试报告',templates=1,tester='张秀丽')
runner.rerun_run(count=3,interval=2) #rerun_run 失败重新运行,次数=3,时间间隔=2
# recevers = ["baojiabao@sinochem.com","shiyi05@sinochem.com","zhaoyichen@sinochem.com","pengbo01@sinochem.com","v-zhangxiuli@sinochem.com"] #收件人地址
recevers = ["v-zhangxiuli@sinochem.com", "1156245389@qq.com"]
runner.send_email(host="smtp.qq.com",port=465,user="XX@qq.com",password="XX",to_addrs=recevers) #发送自动化测试报告信息
fp.close()
#发送邮件
# send_email = SendEmail()
# send_email.send_mail(find_new_report(report_dirc))