跳转到主要内容

Pytest-pyvista软件包

项目描述

PyPI version conda-forge version Python versions GitHub Actions: Unit Testing and Deployment

用于测试PyVista绘图输出的插件。


pytest插件由Cookiecutter生成,并使用了@hackebrotcookiecutter-pytest-plugin模板。

功能

此插件简化了由PyVista生成的图像的比较。它使用PyVista绘图函数在首次执行时生成图像缓存。然后,后续执行将比较其结果与此缓存,因此如果代码中有任何更改导致图像生成中断,与缓存的比较将发现它。请注意,比较中存在错误容忍度,所以微小的差异不会导致失败。

需求

您必须拥有Python版本 >= 3.8,并在您的环境中安装了PyVista。

pyvista版本 >=0.37.0和vtk版本 >=9.0.0是必需的。

安装

您可以通过从PyPI使用pip安装“pytest-pyvista”。

$ pip install pytest-pyvista

或者,您也可以通过从conda-forge使用condamamba安装。

$ mamba install -c conda-forge pytest-pyvista

用法

安装后,您只需在测试中使用命令 pl.show()。如果不存在,插件将自动管理缓存生成和图像比较。确保在加载 PyVista 时启用 pv.OFF_SCREEN,这样在测试时 pl.show() 不会弹出任何窗口。默认情况下,对于图像比较,每个测试都应使用 verify_image_cache 固定装置。

import pyvista as pv
pv.OFF_SCREEN = True
def test_succeeds(verify_image_cache):
    pl = pyvista.Plotter()
    pl.add_mesh(pyvista.Sphere(), show_edges=True)
    pl.show()

如果大多数测试使用此功能,可能仅限于一个模块,可以使用包装版本。

@pytest.fixture(autouse=True)
def wrapped_verify_image_cache(verify_image_cache):
    return verify_image_cache

如果您需要在测试中使用任何标志,可以修改测试中的 verify_image_cache 对象。

import pyvista as pv
pv.OFF_SCREEN = True
def test_succeeds(verify_image_cache):
    verify_image_cache.windows_skip_image_cache = True
    pl = pyvista.Plotter()
    pl.add_mesh(pyvista.Sphere(), show_edges=True)
    pl.show()

全局标志

这是在命令行调用 pytest 时可以使用的标志。

  • --reset_image_cachetests/plotting/test_plotting.py 的每个测试中创建一个新的图像,不推荐用于测试或可能的主要或次要版本。

  • 如果您想暂时忽略回归测试,例如在特定的 CI 动作上,可以使用 --ignore_image_cache

  • 当使用 --fail_extra_image_cache 时,如果缓存中有多余的图像,它将报告为错误。

  • --generated_image_dir <DIR> 将所有生成的测试图像存入 <DIR>。

  • --add_missing_images 将测试运行中缺少的任何图像添加到缓存中。

  • --image_cache_dir <DIR> 设置图像缓存目录。这将覆盖任何配置,请参见下文。

  • --reset_only_failed 仅重置失败测试的图像缓存。

特定于测试的标志

这些是 verify_image_cache 的属性。您可以在测试函数的开始将其设置为 True(如果需要)。

  • high_variance_test:如果需要,测试将通过或失败的条件阈值将增加到另一个预定的阈值。这目前是由于使用了不稳定的 VTK 版本,在稳定版本中不应这样做。

  • windows_skip_image_cache:对于 Windows 中绘图与 MacOS/Linux 不同的测试。

  • macos_skip_image_cache:对于 MacOS 中绘图与 Windows/Linux 不同的测试。

  • skip:如果您有一个绘制图形的测试,但不想将其输出与缓存进行比较,可以使用此标志跳过。

配置

如果您使用 pyproject.toml 或其他任何 pytest 配置 部分,请考虑配置您的测试目录位置,以避免在调用 pytest 时传递命令行参数,例如在 pyproject.toml 中。

[tool.pytest.ini_options]
image_cache_dir = "tests/plotting/image_cache"

贡献

总是欢迎贡献。可以使用 tox 运行测试,请确保在提交拉取请求之前,覆盖率至少保持不变。

许可证

MIT 许可证的条款下分发,pytest-pyvista 是免费和开源软件。

问题

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

项目详情


下载文件

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

源代码分发

pytest_pyvista-0.1.9.tar.gz (6.8 kB 查看哈希值)

上传时间 源代码

构建分发

pytest_pyvista-0.1.9-py2.py3-none-any.whl (7.6 kB 查看哈希值)

上传时间 Python 2 Python 3

由以下支持