# pytest-send-email
[![PyPI version](https://badge.fury.io/py/pytest-send-email.svg)](https://badge.fury.io/py/pytest-send-email)
[![Downloads](https://pepy.tech/badge/pytest-send-email)](https://pepy.tech/project/pytest-send-email)
[![PRs Welcome](https://img.shields.io/badge/PRs-welcome-brightgreen.svg?style=flat-square)]()
[![Maintenance](https://img.shields.io/badge/Maintained%3F-yes-green.svg)]()
[![Open Source Love png1](https://badges.frapsoft.com/os/v1/open-source.png?v=103)]()
Pytest发送Email邮件插件
---
### 特性
- SMTP服务器及用户密码信息支持写到环境变量或pytest.ini中,也可以命令行参数传入
- 支持选择使用SMTP或SMTP_SSL,支持自定义SMTP端口
- 支持在pytest.ini或命令行参数中定制邮件主题,邮件正文,邮件正文HTML模板
- 支持添加多个附件,文件路径以逗号隔开
- 支持多个收件人,文件路径以逗号隔开
---
### 如何使用
1. 安装 `pytest-send-email`
使用pip安装
```sh
pip pytest-send-email
```
2. 使用方法
在环境变量中添加SMTP_HOST, SMTP_USER,SMTP_PWD并source
```sh
export SMTP_HOST=<smtp-server>
export SMTP_USER=<your-email-user>
export SMTP_PWD=<your-password or token>
```
使用以下参数运行pytest
```sh
pytest --send-email --email-receivers=abc@gmail.com,abc@hotmail.com
```
> 也可以将参数配置到pytest.ini中
```ini
[pytest]
addopts = --send-email --html=report.html
smtp_host = <smtp-server>
smtp_port = <smtp-port>
smtp_user = <your-email-user>
smtp_pwd = <your-password or token>
smtp_ssl = False
email_receivers = superhin@126.com
email_subject = Pytest Test Report
email_body =
Hi, this is the test report
email_attachments=test_a.py,report.html
```
或在配置在pytest.ini`[email]`段中
```ini
[pytest]
addopts = --send-email --html=report.html
[email]
host = <smtp-server>
port = <smtp-port>
user = <your-email-user>
password = <your-password or token>
ssl = False
receivers = superhin@126.com
subject = Pytest Test Report
body =
Hi, this is the test report
attachments=test_a.py,report.html
```
然后运行pytest命令即可
3. 支持的命令行参数
- --send-email: 是否发送邮件
- --email-receivers: 邮件收件人,逗号分隔
- --smtp-host: SMTP服务器地址
- --smtp-port: SMTP端口号
- --smtp-user: 邮箱用户
- --smtp-pwd: 邮箱密码
- --smtp-ssl: 是否使用SMTP_SSL
- --email-subject: 邮件主题
- --email-body: 邮件内容,支持HTML
- --email-template: 邮件模板文件路径
- --email-attachments: 邮件附件,逗号分隔
4. 支持的pytest.ini选项
- --smtp_host: SMTP服务器地址
- --smtp_port: SMTP端口号
- --smtp_user: 邮箱用户
- --smtp_pwd: 邮箱密码
- --smtp_ssl: 是否使用SMTP_SSL
- --email_subject: 邮件主题
- --email_body: 邮件内容,支持HTML
- --email_receivers: Email receivers, comma-separated
- --email_template: 邮件模板文件路径
- --email_attachments: 邮件附件,逗号分隔
> 如果你想发邮件,最少要配置--send-email和--email-receivers或email_receivers
---
*报告示例*
<img src="pytest_email.png" alt="pytest_email.png">
---
### 报告信息
- Total: 用例总数
- Passed:成功用例总数
- Failed:失败用例总数
- Skipped:跳过用例总数
- Error:出错用例总数
- XPassed:非期望成功用例总数
- XFailed:期望失败总数
### Todo
- 增加执行时间,时长,用例失败信息,日志,图表等更多的信息
- 支持JinJa2渲染模板
- 支持对用例标记失败时发邮件给谁
---
- Email: <a href="mailto:superhin@126.com?Subject=Pytest%20Email" target="_blank">`superhin@126.com`</a>
- Blog: <a href="https://www.cnblogs.com/superhin/" target="_blank">`博客园 韩志超`</a>
- 简书: <a href="https://www.jianshu.com/u/0115903ded22" target="_blank">`简书 韩志超`</a>
Raw data
{
"_id": null,
"home_page": "https://github.com/hanzhichao/pytest-send-email",
"name": "pytest-send-email",
"maintainer": null,
"docs_url": null,
"requires_python": null,
"maintainer_email": null,
"keywords": "pytest, py.test, email, smtp",
"author": "Han Zhichao",
"author_email": "superhin@126.com",
"download_url": "https://files.pythonhosted.org/packages/15/fe/3654e7e1b86a378756537f8b100d5390939ba8e36a535a3f972b4de606d9/pytest_send_email-0.1.1.tar.gz",
"platform": null,
"description": "# pytest-send-email\n\n[![PyPI version](https://badge.fury.io/py/pytest-send-email.svg)](https://badge.fury.io/py/pytest-send-email)\n[![Downloads](https://pepy.tech/badge/pytest-send-email)](https://pepy.tech/project/pytest-send-email)\n[![PRs Welcome](https://img.shields.io/badge/PRs-welcome-brightgreen.svg?style=flat-square)]()\n[![Maintenance](https://img.shields.io/badge/Maintained%3F-yes-green.svg)]()\n[![Open Source Love png1](https://badges.frapsoft.com/os/v1/open-source.png?v=103)]()\n\n\nPytest\u53d1\u9001Email\u90ae\u4ef6\u63d2\u4ef6\n\n---\n\n### \u7279\u6027\n\n- SMTP\u670d\u52a1\u5668\u53ca\u7528\u6237\u5bc6\u7801\u4fe1\u606f\u652f\u6301\u5199\u5230\u73af\u5883\u53d8\u91cf\u6216pytest.ini\u4e2d\uff0c\u4e5f\u53ef\u4ee5\u547d\u4ee4\u884c\u53c2\u6570\u4f20\u5165\n- \u652f\u6301\u9009\u62e9\u4f7f\u7528SMTP\u6216SMTP_SSL\uff0c\u652f\u6301\u81ea\u5b9a\u4e49SMTP\u7aef\u53e3\n- \u652f\u6301\u5728pytest.ini\u6216\u547d\u4ee4\u884c\u53c2\u6570\u4e2d\u5b9a\u5236\u90ae\u4ef6\u4e3b\u9898\uff0c\u90ae\u4ef6\u6b63\u6587\uff0c\u90ae\u4ef6\u6b63\u6587HTML\u6a21\u677f\n- \u652f\u6301\u6dfb\u52a0\u591a\u4e2a\u9644\u4ef6\uff0c\u6587\u4ef6\u8def\u5f84\u4ee5\u9017\u53f7\u9694\u5f00\n- \u652f\u6301\u591a\u4e2a\u6536\u4ef6\u4eba\uff0c\u6587\u4ef6\u8def\u5f84\u4ee5\u9017\u53f7\u9694\u5f00\n\n---\n\n### \u5982\u4f55\u4f7f\u7528\n\n1. \u5b89\u88c5 `pytest-send-email`\n\n\u4f7f\u7528pip\u5b89\u88c5\n```sh\npip pytest-send-email\n```\n\n2. \u4f7f\u7528\u65b9\u6cd5\n\u5728\u73af\u5883\u53d8\u91cf\u4e2d\u6dfb\u52a0SMTP_HOST, SMTP_USER,SMTP_PWD\u5e76source\n```sh\nexport SMTP_HOST=<smtp-server>\nexport SMTP_USER=<your-email-user>\nexport SMTP_PWD=<your-password or token>\n```\n\n\u4f7f\u7528\u4ee5\u4e0b\u53c2\u6570\u8fd0\u884cpytest\n```sh\npytest --send-email --email-receivers=abc@gmail.com,abc@hotmail.com\n```\n\n> \u4e5f\u53ef\u4ee5\u5c06\u53c2\u6570\u914d\u7f6e\u5230pytest.ini\u4e2d\n```ini\n[pytest]\naddopts = --send-email --html=report.html\n\nsmtp_host = <smtp-server>\nsmtp_port = <smtp-port>\nsmtp_user = <your-email-user>\nsmtp_pwd = <your-password or token>\nsmtp_ssl = False\n\n\nemail_receivers = superhin@126.com\nemail_subject = Pytest Test Report\nemail_body = \n Hi, this is the test report\nemail_attachments=test_a.py,report.html\n\n```\n\u6216\u5728\u914d\u7f6e\u5728pytest.ini`[email]`\u6bb5\u4e2d\n```ini\n[pytest] \naddopts = --send-email --html=report.html\n\n[email]\nhost = <smtp-server>\nport = <smtp-port>\nuser = <your-email-user>\npassword = <your-password or token>\nssl = False\n\nreceivers = superhin@126.com\nsubject = Pytest Test Report\nbody = \n Hi, this is the test report\nattachments=test_a.py,report.html\n```\n\n\u7136\u540e\u8fd0\u884cpytest\u547d\u4ee4\u5373\u53ef\n\n3. \u652f\u6301\u7684\u547d\u4ee4\u884c\u53c2\u6570\n\n- --send-email: \u662f\u5426\u53d1\u9001\u90ae\u4ef6\n- --email-receivers: \u90ae\u4ef6\u6536\u4ef6\u4eba\uff0c\u9017\u53f7\u5206\u9694\n- --smtp-host: SMTP\u670d\u52a1\u5668\u5730\u5740\n- --smtp-port: SMTP\u7aef\u53e3\u53f7\n- --smtp-user: \u90ae\u7bb1\u7528\u6237\n- --smtp-pwd: \u90ae\u7bb1\u5bc6\u7801\n- --smtp-ssl: \u662f\u5426\u4f7f\u7528SMTP_SSL\n- --email-subject: \u90ae\u4ef6\u4e3b\u9898\n- --email-body: \u90ae\u4ef6\u5185\u5bb9\uff0c\u652f\u6301HTML\n- --email-template: \u90ae\u4ef6\u6a21\u677f\u6587\u4ef6\u8def\u5f84\n- --email-attachments: \u90ae\u4ef6\u9644\u4ef6\uff0c\u9017\u53f7\u5206\u9694\n\n4. \u652f\u6301\u7684pytest.ini\u9009\u9879\n\n- --smtp_host: SMTP\u670d\u52a1\u5668\u5730\u5740\n- --smtp_port: SMTP\u7aef\u53e3\u53f7\n- --smtp_user: \u90ae\u7bb1\u7528\u6237\n- --smtp_pwd: \u90ae\u7bb1\u5bc6\u7801\n- --smtp_ssl: \u662f\u5426\u4f7f\u7528SMTP_SSL\n- --email_subject: \u90ae\u4ef6\u4e3b\u9898\n- --email_body: \u90ae\u4ef6\u5185\u5bb9\uff0c\u652f\u6301HTML\n- --email_receivers: Email receivers, comma-separated\n- --email_template: \u90ae\u4ef6\u6a21\u677f\u6587\u4ef6\u8def\u5f84\n- --email_attachments: \u90ae\u4ef6\u9644\u4ef6\uff0c\u9017\u53f7\u5206\u9694\n\n> \u5982\u679c\u4f60\u60f3\u53d1\u90ae\u4ef6\uff0c\u6700\u5c11\u8981\u914d\u7f6e--send-email\u548c--email-receivers\u6216email_receivers\n---\n\n*\u62a5\u544a\u793a\u4f8b*\n\n<img src=\"pytest_email.png\" alt=\"pytest_email.png\">\n\n---\n\n### \u62a5\u544a\u4fe1\u606f\n\n- Total: \u7528\u4f8b\u603b\u6570\n- Passed\uff1a\u6210\u529f\u7528\u4f8b\u603b\u6570\n- Failed\uff1a\u5931\u8d25\u7528\u4f8b\u603b\u6570\n- Skipped\uff1a\u8df3\u8fc7\u7528\u4f8b\u603b\u6570\n- Error\uff1a\u51fa\u9519\u7528\u4f8b\u603b\u6570\n- XPassed\uff1a\u975e\u671f\u671b\u6210\u529f\u7528\u4f8b\u603b\u6570\n- XFailed\uff1a\u671f\u671b\u5931\u8d25\u603b\u6570\n\n### Todo\n- \u589e\u52a0\u6267\u884c\u65f6\u95f4\uff0c\u65f6\u957f\uff0c\u7528\u4f8b\u5931\u8d25\u4fe1\u606f\uff0c\u65e5\u5fd7\uff0c\u56fe\u8868\u7b49\u66f4\u591a\u7684\u4fe1\u606f\n- \u652f\u6301JinJa2\u6e32\u67d3\u6a21\u677f\n- \u652f\u6301\u5bf9\u7528\u4f8b\u6807\u8bb0\u5931\u8d25\u65f6\u53d1\u90ae\u4ef6\u7ed9\u8c01\n\n---\n\n- Email: <a href=\"mailto:superhin@126.com?Subject=Pytest%20Email\" target=\"_blank\">`superhin@126.com`</a> \n- Blog: <a href=\"https://www.cnblogs.com/superhin/\" target=\"_blank\">`\u535a\u5ba2\u56ed \u97e9\u5fd7\u8d85`</a>\n- \u7b80\u4e66: <a href=\"https://www.jianshu.com/u/0115903ded22\" target=\"_blank\">`\u7b80\u4e66 \u97e9\u5fd7\u8d85`</a>\n\n",
"bugtrack_url": null,
"license": "MIT license",
"summary": "Send pytest execution result email",
"version": "0.1.1",
"project_urls": {
"Homepage": "https://github.com/hanzhichao/pytest-send-email"
},
"split_keywords": [
"pytest",
" py.test",
" email",
" smtp"
],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "15fe3654e7e1b86a378756537f8b100d5390939ba8e36a535a3f972b4de606d9",
"md5": "eafa350307f08c6a9117390e07e3c3b9",
"sha256": "271649e141bd03deb1371dcdfaa2543a7e3f4bcd9917696bbf33fc4b495db006"
},
"downloads": -1,
"filename": "pytest_send_email-0.1.1.tar.gz",
"has_sig": false,
"md5_digest": "eafa350307f08c6a9117390e07e3c3b9",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 7019,
"upload_time": "2024-09-02T02:51:41",
"upload_time_iso_8601": "2024-09-02T02:51:41.294773Z",
"url": "https://files.pythonhosted.org/packages/15/fe/3654e7e1b86a378756537f8b100d5390939ba8e36a535a3f972b4de606d9/pytest_send_email-0.1.1.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2024-09-02 02:51:41",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "hanzhichao",
"github_project": "pytest-send-email",
"travis_ci": false,
"coveralls": false,
"github_actions": false,
"lcname": "pytest-send-email"
}