您的位置:首页 > 编程语言 > Python开发

python unittest 测试结束后发送测试报告

2017-06-24 12:43 453 查看
from email.mime.text import MIMEText

from email.header import Header
import smtplib,os,settings

def send_mail(file):
f = open(file,'rb')
mail_body = f.read()
f.close()

msg = MIMEText(mail_body,'html',settings.MAIL_ASCII)
msg['Subject'] = Header(settings.MAIL_HEADER,settings.MAIL_ASCII)
msg['From'] = settings.MAIL_FROM
for receiver in settings.MAIL_TO:
msg['To'] = receiver

smtp = smtplib.SMTP()
smtp.connect(settings.SMTP_SERVER)
smtp.login(settings.MAIL_FROM,settings.MAIL_FROM_PASSWORD)
for mail_to in settings.MAIL_TO:
smtp.sendmail(settings.MAIL_FROM,mail_to,msg.as_string())
smtp.quit()

def new_report(test_report):
lists = os.listdir(test_report)
lists.sort(key=lambda fn: os.path.getmtime(test_report + '\\' + fn))
file_new = os.path.join(test_report,lists[-1])
return file_new

以下是runtest.py内容:

import unittest,time
from HTMLTestRunner import HTMLTestRunner
from utilities.send_mail import send_mail,new_report

if __name__ == '__main__':
test_dir = './test_case'
discover = unittest.defaultTestLoader.discover(test_dir, pattern='test*.py')

test_report = './result'
now_time = time.strftime("%Y-%m-%d %H-%M-%S")
file_name = './result/' + now_time + 'result.html'
fp = open(file_name,'wb')

runner = HTMLTestRunner(stream=fp,title='Test Result',description='Test Case Executive Condition:')
runner.run(discover)
fp.close()

new_report = new_report(test_report)
send_mail(new_report)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息