跳转到主要内容

一个用于测试Jupyter Notebooks的pytest插件。

项目描述

pytest-notebook

CI Coverage RTD PyPI Conda Code style: black

一个pytest插件,用于回归测试和重新生成Jupyter Notebooks

Example Test


目的

插件的目的在于确保python环境(例如,更新包)的更改没有影响notebook的输出。如果notebook已更改,此插件还可以重新生成notebook,保存新的输出。

功能

  • 识别、收集、执行(可选输出)然后比较输入与输出Jupyter Notebooks

  • 提供清晰的、带颜色的notebook差异(使用nbdime

  • 重新生成失败的notebook。

  • coveragepytest_cov集成。

  • 一个良好定义的API允许运行notebook回归测试

    1. 使用pytest测试收集架构。
    2. 作为pytest固定点(nb_regression.check(filename))。
    3. 使用pytest_notebook python包。
  • 所有阶段都可以通过以下方式高度配置

    1. The pytest命令行界面。
    2. The pytest配置文件。
    3. notebook和单元级别元数据。
  • 后处理插件入口点,允许自定义修改notebook,包括使用black进行源代码格式化

Configuration Examples

安装

Conda安装(推荐)

conda install -c conda-forge pytest-notebook

pip(来自PyPI)安装

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

可选地,您可以单独运行blackflake8

black .
flake8 .

像VS Code这样的编辑器也有自动代码格式化工具,可以遵循此标准。

许可

根据BSD-3许可证分发,pytest-notebook是免费和开源软件。

问题

如果您遇到任何问题,请提交问题,并提供详细描述。

致谢

项目详情


下载文件

下载适用于您的平台的文件。如果您不确定选择哪个,请了解更多关于安装包的信息。

源分发

pytest_notebook-0.10.0.tar.gz (3.4 MB 查看哈希值)

上传时间

构建分发

pytest_notebook-0.10.0-py3-none-any.whl (37.7 kB 查看哈希值)

上传时间 Python 3

由以下支持

AWS AWS 云计算和安全赞助商 Datadog Datadog 监控 Fastly Fastly CDN Google Google 下载分析 Microsoft Microsoft PSF 赞助商 Pingdom Pingdom 监控 Sentry Sentry 错误记录 StatusPage StatusPage 状态页面