跳至主要内容

在Bubblewrap沙盒中运行您的测试

项目描述

pytest插件允许在每个自己的bubblewrap沙盒中运行每个测试。

这意味着每个测试都在自己的独立环境中运行,没有任何测试对其他测试有任何副作用。

基本用法

只需安装插件

$ pip install pytest-bwrap

然后像往常一样运行您的测试,只需添加一个选项

$ py.test --bwrap

每个测试将在自己的沙盒中运行。

沙盒详情

沙盒将拥有自己的文件系统,布局如下

  • 默认情况下阻止网络访问;(见“选项”)

  • 以下是从主机系统只读挂载

    • /etc/hosts/etc/resolv.conf

    • /usr(以及相应的/bin/lib/sbin,以及正确的/usr-merge处理)

  • 以下是从主机系统挂载

    • /dev

    • /proc

    • 当前目录(即您正在测试的项目根目录)

    • 如果正在运行虚拟环境,则活跃的虚拟环境

  • /tmp 是一个新的tmpfs

选项

网络访问

可以通过使用pytest_bwrap.decorators.network_enabled()装饰器,可选地授予测试网络访问权限。

额外的只读目录

有时需要只读目录,例如在验证测试函数中的错误处理时。

可以通过以下两种方式之一实现:

  • 使用pytest_bwrap.decorators.read_only('/path/to/ro-dir')装饰测试函数;

  • pytest配置中设置extra-ro-dirs选项;

示例

包含了如何使用此插件进行测试的完整示例。

特别是,它展示了如何使用装饰器和pytest配置。

您应该能够切换到那个目录,然后运行测试

$ pip install -r requirements.txt
$ py.test --bwrap

所有测试都应该通过。

许可证

本项目根据GNU Lesser General Public License的条款提供,无论是版本3还是任何更新版本,有关详细信息,请参阅COPYING文件。

0.1

初始版本,具有基本功能集,以在沙盒中运行每个测试

  • 主机文件系统以只读方式挂载,当前工作目录以读写方式挂载;

  • 默认禁用网络访问,但可以为选定的测试启用;

  • 可以将附加目录设置为只读;

项目详情


下载文件

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

源代码发行版

pytest-bwrap-0.1.1.tar.gz (9.9 kB 查看哈希值)

上传时间 源代码

由以下支持