在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的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | dfc7ea75dc77fb00107a964af09bbf7721954505c5812ffe8ef97bba4a00a998 |
|
MD5 | 4d4f5c74d64ad385d18cc975f2b491bc |
|
BLAKE2b-256 | f41ceea11970d09ce62c6ec04ecdec4bbccf5f10e5c350bf00b0cc38dbdf1fd3 |