当前位置: 首页 > 知识库问答 >
问题:

如何通过电子邮件发送pytest覆盖报告?

黎承颜
2023-03-14

我正在使用pytest框架和pytest cov插件生成覆盖率报告,该报告在测试用例执行后在htmlcov目录中生成一个覆盖率报告文件,在测试用例执行时,有没有一种方法可以将该报告文件作为附件发送?

共有1个答案

黄弘深
2023-03-14

您可以在conftest.py文件中放入拆卸脚本。这是您可以放置pytest夹具以及通用pytest选项的地方。请参阅此处的API参考。

pytest\u session\u finish是您正在寻找的功能。您的conftest。py可能看起来像这样。这在很大程度上参考了smtplib部分的答案,并附有一个附件:

import smtplib
from os.path import basename
from email.mime.application import MIMEApplication
from email.mime.multipart import MIMEMultipart
from email.mime.text import MIMEText
from email.utils import COMMASPACE, formatdate


def send_mail(send_from, send_to, subject, text, files=None,
              server="127.0.0.1"):
    assert isinstance(send_to, list)

    msg = MIMEMultipart()
    msg['From'] = send_from
    msg['To'] = COMMASPACE.join(send_to)
    msg['Date'] = formatdate(localtime=True)
    msg['Subject'] = subject

    msg.attach(MIMEText(text))

    for f in files or []:
        with open(f, "rb") as fil:
            part = MIMEApplication(
                fil.read(),
                Name=basename(f)
            )
        # After the file is closed
        part['Content-Disposition'] = 'attachment; filename="%s"' % basename(f)
        msg.attach(part)


    smtp = smtplib.SMTP(server)
    smtp.sendmail(send_from, send_to, msg.as_string())
    smtp.close()

def pytest_sessionfinish(session, exitstatus):
    send_mail('myemail', 'theiremail', 'Your Coverage Report', 'My Text',
        files="coveragereport.html", server="myserver")
 类似资料:
  • 请让我知道通过邮件自动发送TestNG可电子邮件报告而不添加外部jar的最佳方式。

  • 问题内容: 在我的中,我具有以下内容: 我的电子邮件代码: 当然,如果通过设置调试服务器,则可以在终端中看到该电子邮件。 但是,我实际上如何不将电子邮件发送到调试服务器,而是发送到user@gmail.com? 阅读你的答案后,让我弄明白一点: 你不能使用localhost(简单的ubuntu pc)发送电子邮件吗? 我认为在django 1.3中已经过时了,取而代之的是? 问题答案: 将电子邮件

  • 问题内容: 我正在尝试使用 Go通过gmail API 发送电子邮件,但我发现文档存在缺陷/令人困惑。有一次我没有看到收据字段或电子邮件正文。 我不需要上传任何内容,因此我发现简单上传,分段上传,可恢复的上传方法完全没有用。是否有任何清晰的演示(带有所需的数据/参数,例如cURL有效负载)? 顺便提一句,我不确定是否我是唯一一个想到这一点的人,但是除非有可用的库,否则Google api似乎在可用

  • 我被困在一个公司防火墙后面,它不允许我通过Java Mail API或Apache Commons电子邮件等传统方式发送电子邮件,甚至不允许我发送给公司内部的其他人(无论如何,这就是我想要的)。但我的Outlook 2010显然可以发送这些电子邮件。我想知道是否有办法通过Java代码自动化Outlook 2010,以便Outlook可以发送电子邮件?我知道像“mailto”这样的东西可以用来弹出带

  • 我使用下面的代码片段通过邮件发送testng的emailable-report.html。 公共类SampleSendMail{

  • 问题内容: 我正在使用。 使用发送电子邮件(通过)的最佳方法是什么? 问题答案: 有关使用Outlook的解决方案,请参见下面的TheoretiCAL答案。 否则,请使用python随附的smtplib。请注意,这将要求您的电子邮件帐户允许smtp,默认情况下不一定启用此功能。 编辑: 此示例使用保留域,如RFC2606中所述 为了使它真正与gmail配合使用,Doe先生需要进入gmail中的选项