pytest 프레임 워크와 pytest-cov 플러그인을 사용하여 테스트 케이스가 실행 된 후 htmlcov 디렉토리 내에 커버리지 보고서 파일을 생성하는 커버리지 보고서를 생성하고 있습니다.이 보고서 파일을 첨부 파일로 보낼 수도 있습니다. 테스트 케이스가 실행됩니까?
conftest.py 파일에 분해 스크립트를 넣을 수 있습니다. 이것은 일반적인 pytest 옵션뿐만 아니라 pytest 픽스쳐를 넣을 수있는 곳입니다. 여기 에서 API 참조를 확인 하세요.
pytest_session_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")
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다