一个用于测试Jupyter Notebooks的pytest插件。
项目描述
pytest-notebook
一个pytest插件,用于回归测试和重新生成Jupyter Notebooks。
目的
插件的目的在于确保python环境(例如,更新包)的更改没有影响notebook的输出。如果notebook已更改,此插件还可以重新生成notebook,保存新的输出。
功能
-
识别、收集、执行(可选输出)然后比较输入与输出Jupyter Notebooks。
-
提供清晰的、带颜色的notebook差异(使用nbdime)
-
重新生成失败的notebook。
-
与coverage和pytest_cov集成。
-
一个良好定义的API允许运行notebook回归测试
- 使用pytest测试收集架构。
- 作为pytest固定点(
nb_regression.check(filename)
)。 - 使用
pytest_notebook
python包。
-
所有阶段都可以通过以下方式高度配置
- The pytest命令行界面。
- The pytest配置文件。
- notebook和单元级别元数据。
-
后处理插件入口点,允许自定义修改notebook,包括使用black进行源代码格式化
安装
从Conda安装(推荐)
conda install -c conda-forge pytest-notebook
pip install pytest-notebook
安装开发版本
git clone https://github.com/chrisjsewell/pytest-notebook .
cd pytest-notebook
pip install --upgrade pip
pip install -e .
# pip install -e .[code_style,testing,docs] # install extras for more features
使用方法
请参阅文档:http://pytest-notebook.readthedocs.io/
如果您想测试一些示例笔记本,请添加--nb-test-files
标志
git clone https://github.com/chrisjsewell/pytest-notebook
cd pytest-notebook/examples
pip install pytest ipykernel pytest-notebook
pytest --nb-test-files *.ipynb
您应该看到success.ipynb
通过测试,而fail.ipynb
未通过测试。
您可以使用--nb-force-regen
标志重新生成fail.ipynb
的输出
pytest --nb-test-files --nb-force-regen *.ipynb
贡献
欢迎贡献。
以下将发现并运行所有单元测试
pip install -e .[testing]
pytest -v
编码风格要求
代码风格使用flake8进行测试,配置在.flake8
中,代码应使用black格式化。
使用pytest-notebook[code_style]
安装将使pre-commit包可用,这将确保在提交之前通过重新格式化代码和测试lint错误来通过这些测试。可以通过以下方式设置:
cd pytest-notebook
pre-commit install
可选地,您可以单独运行black
和flake8
black .
flake8 .
像VS Code这样的编辑器也有自动代码格式化工具,可以遵循此标准。
许可
根据BSD-3许可证分发,pytest-notebook
是免费和开源软件。
问题
如果您遇到任何问题,请提交问题,并提供详细描述。
致谢
项目详情
下载文件
下载适用于您的平台的文件。如果您不确定选择哪个,请了解更多关于安装包的信息。
源分发
构建分发
pytest_notebook-0.10.0.tar.gz的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 0a38a73b04c40137402b5f39a053395b418028cb3994a04dbcffe603c7b2a646 |
|
MD5 | 367143980d4254a4c527fb761dbcbc2c |
|
BLAKE2b-256 | 3e038ea56929a6e0675d2c420555b3092c9a74a9a04e70417bcfe5b4b5ef1413 |
pytest_notebook-0.10.0-py3-none-any.whl的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 482ab2f8fbac6ecb417226e9b7e68476332262a03f555e49d89a164ee16581f6 |
|
MD5 | 6391ee0d1f88f9e8056a26815fc97ecf |
|
BLAKE2b-256 | 40317ed17c3f929b0b7537ceaab0d06c7ce1d2ec56ddd9dd69306f8bfcd515e8 |