pytest的Unix shell和环境工具包
项目描述
这个库是Unix shell和环境管理工具的集合,用于自动化测试。下面是可用功能的摘要,请查看源代码以获取完整列表。
安装
使用您喜欢的包管理器进行安装
.. code:: bash
pip install pytest-shutil # 或者.. easy_install pytest-shutil
工作空间 fixture
工作空间 fixture 简单来说就是一个具有一些额外功能的函数作用域的临时目录
.. code:: python
在您的测试或conftest.py中明确启用设备(使用setuptools入口点时不需要)pytest_plugins = [‘pytest_shutil’]
- def test_something(workspace)
# 工作区包含对path.py路径对象的引用(见https://pathpy.readthedocs.io/)path = workspace.workspace script = path / ‘hello.sh’ script.write_text(‘#!/bin/shn echo hello world!’)
# 有一个‘run’方法来执行相对于工作区根目录的内容 workspace.run(‘hello.sh’)
pytest_shutil.env:Shell辅助工具
功能 |
描述 |
---|---|
set_env |
环境变量设置上下文管理器 |
unset_env |
环境变量取消设置上下文管理器 |
no_env |
单个环境变量取消设置的上下文管理器 |
no_cov |
禁用子进程中的覆盖率上下文管理器 |
pytest_shutil.cmdline:命令行辅助工具
功能 |
描述 |
---|---|
umask |
umask设置上下文管理器 |
chdir |
更改目录的上下文管理器 |
TempDir |
临时目录的上下文管理器 |
PrettyFormatter |
简单文本格式化工具,用于绘制标题、段落、hr。 |
copy_files |
将一个目录中的所有文件复制到另一个目录 |
getch |
跨平台从屏幕读取单个字符 |
which |
Unix which 的类似物 |
get_real_python_executable |
找到我们的系统Python,这在虚拟环境下运行时很有用 |
pytest_shutil.run:在子进程中运行内容
功能 |
描述 |
---|---|
run |
运行命令,带有捕获输出、检查返回代码的选项。 |
run_as_main |
以系统入口点的形式运行函数 |
run_module_as_main |
以系统入口点的形式运行模块 |
run_in_subprocess |
在子进程中运行函数 |
run_with_coverage |
启用覆盖率运行命令 |
变更日志
1.7.0
所有:支持pytest >= 4.0.0
所有:支持Python 3.7
pytest-server-fixtures:如果您的机器上未定义主机,则默认为主机localhost
pytest-server-fixture:由于上游API更改,固定为rethinkdb < 2.4.0
pytest-verbose-parametrize:添加对改进的标记基础设施的支持
pytest-verbose-parametrize:修复集成测试以支持pytest >= 4.1.0
pytest-virtualenv:添加virtualenv作为安装要求。修复#122
pytest-webdriver:使用getfixturevalue修复RemovedInPytest4Warning
circleci:通过跳过没有推送访问权限的开发者的coverall提交来修复检查
wheels:生成适用于python 2.x和3.x的通用wheels
dist:删除构建和分发*.egg文件的支持
VagrantFile:默认安装python 3.7并初始化python 3.7
使用“logger.warning()”函数修复DeprecationWarning警告
1.6.2 (2019-02-21)
pytest-server-fixtures:如果调用kill(),则抑制堆栈跟踪
pytest-server-fixtures:修复TestServerV2中随机端口逻辑
1.6.1 (2019-02-12)
pytest-server-fixtures:修复在服务器未启动时尝试访问主机名时的异常
1.6.0 (2019-02-12)
pytest-server-fixtures:添加之前删除的TestServerV2.kill()函数
pytest-profiling:在集成测试中固定more-itertools==5.0.0,因为这是一个仅适用于PY3的版本
1.5.1 (2019-01-24)
pytest-verbose-parametrize:修复使用@pytest.mark.parametrize时的问题
1.5.0 (2019-01-23)
pytest-server-fixtures:使postgres fixture及其测试可选,如所有其他fixture
pytest-server-fixtures:撤销对pymongo弃用警告的修复,因为这会破坏与pymongo 3.6.0的兼容性
pytest-server-fixtures:在httpd中删除对RHEL5的支持
1.4.1 (2019-01-18)
pytest-server-fixtures:现在只影响服务器类‘thread’,ENV中指定的服务器固定二进制路径现在只影响服务器类‘thread’
1.4.0 (2019-01-15)
修复Simple HTTP服务器固定中的python 3兼容性
修复pytest-profiling中的损坏测试
将pytest<4.0.0固定,直到所有弃用警告都得到修复。
pytest-webdriver:用无头Google Chrome替换已弃用的phantomjs。
将Vagrantfile添加到项目中,以使测试环境可移植。
将.editorconfig文件添加到项目中。
pytest-server-fixtures:添加支持Docker和Kubernetes的TestServerV2。
pytest-server-fixtures:修复MinioServer在使用后未清理的问题。
pytest-server-fixtures: 修复调用pymongo时的弃用警告。
pytest-server-fixtures: 在MongoTestServer拆除时关闭pymongo客户端。
pytest-server-fixtures: 将Mongo、Redis和RethinkDB升级到TestServerV2。
coveralls: 修复损坏的coveralls
1.3.1 (2018-06-28)
使用pymongo list_database_names()代替已弃用的database_names(),添加了pymongo>=3.6.0依赖项
1.3.0 (2017-11-17)
修复了当teardown为None时的工作空间删除问题
修复了pytest-listener中的root logger的压缩问题
添加了S3 Minio测试工具(感谢Gavin Bisesi)
添加了Postgres测试工具(感谢Gavin Bisesi)
使用requests进行服务器测试工具HTTP GET,因为它可以正确处理重定向和代理
1.2.12 (2017-8-1)
修复了缓存临时主机名的回归,一些客户端依赖于此。现在这是可选的。
1.2.11 (2017-7-21)
修复了OSX绑定到非法本地IP范围的问题(感谢Gavin Bisesi)
为pytest-profiling设置和Py3k修复(感谢xoviat)
不再尝试在保留本地IP主机时绑定端口5000,因为有人可能将其绑定到0.0.0.0
修复了当本地虚拟环境未激活时source gprof2dot的回归
1.2.10 (2017-2-23)
在pytest-webdriver中处理自定义Pytest测试项
1.2.9 (2017-2-23)
将用户名添加到mongo服务器测试工具tempdir路径中,以防止在共享多用户文件系统上发生冲突
1.2.8 (2017-2-21)
在shutil.run.run_as_main中返回函数结果
1.2.7 (2017-2-20)
对较老版本的path.py进行更多处理
允许在pytest-virtualenv中传递virtualenv参数
1.2.6 (2017-2-16 )
更新devpi服务器设置以支持devpi-server >= 2.0
随机端口选择改进
HTTPD服务器现在默认绑定到0.0.0.0,以帮助进行Selenium-style测试
更新mongodb服务器参数以支持mongodb >= 3.2
对mongodb测试工具配置和启动逻辑进行纠正
添加了模块范围mongodb测试工具
对较老版本的path.py进行处理
修复了#40问题,即更改当前工作目录的测试会破坏pytest-profiling
1.2.5 (2016-12-09)
对服务器运行器主机和端口生成进行改进,现在支持随机本地IP
RethinkDB测试工具配置的修复
1.2.4 (2016-11-14)
pymongo额外依赖项的修复
为pytest-virtualenv修复了Windows兼容性问题(感谢Jean-Christophe Fillion-Robin提交的PR)
修复了pytest-shutil.cmdline.get_real_python_executable的符号链接处理
1.2.3 (2016-11-7)
提高Mongo测试工具启动检查的健壮性
1.2.2 (2016-10-27)
大多数模块的Python 3兼容性
修复了已弃用的Path.py导入(感谢Bryan Moscon)
修复了pytest-profiling中的已弃用多调用(感谢Paul van der Linden提交的PR)
添加devpi-server测试工具以创建每个测试函数的索引
添加了缺失的许可证文件
拆分httpd服务器测试工具配置,以便子类可以更容易地覆盖加载的模块
将“preserve_sys_path”参数添加到TestServer基类,该参数将当前python sys.path导出到子进程中。
更新httpd、redis和jenkins运行参数和路径以符合当前的Ubuntu规范
在拆除工作空间时忽略错误,以避免在“shutil.rmtree”实现中发生竞态条件
1.2.1 (2016-3-1)
修复了适用于最新版本py.test的pytest-verbose-parametrize
1.2.0 (2016-2-19)
新插件:git存储库测试工具
1.1.1 (2016-2-16)
pytest-profiling改进:在.prof文件中转义非法字符(感谢Aarni Koskela提交的PR)
1.1.0 (2016-2-15)
新插件:devpi服务器测试工具
pytest-profiling改进:过长的.prof文件以测试名称的短哈希保存(感谢Vladimir Lagunov提交的PR)
出于安全原因,将workspace.run()的默认行为更改为不使用子shell
更正了virtualenv.run()方法,使其与父方法workspace.run()处理参数的方式相同
从virtualenv参数中删除了已弃用的“–distribute”
1.0.1 (2015-12-23)
软件包修复
1.0.0 (2015-12-21)
首次公开发布
pytest-shutil-1.7.0.tar.gz的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | d8165261de76e7508505c341d94c02b113dc963f274543abca74dbfabd021261 |
|
MD5 | ece1c4a836aadb64451b9cde1a8c5fef |
|
BLAKE2b-256 | f7fac1f7bfb61674f69fb2694bda0ef475a6b8b915a5c36105648dd58a6f200a |
pytest_shutil-1.7.0-py3.6.egg的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 03c67282a0c520a790ca8db6f65e18851fae3786f45e3ae34e8d9fccbf266a72 |
|
MD5 | 1b009a5480b415559fb238cdfec1b0ce |
|
BLAKE2b-256 | 9ca030973884a4867557ba7490cc88c6444911e24ec1d5f133bac3e4074af11c |
pytest_shutil-1.7.0-py2.py3-none-any.whl的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | b3568a675cb092c9b15c789ebd3046b79cfaca476868939748729d14557a98ff |
|
MD5 | 17876a6c2623a767b2229a532ff4fbca |
|
BLAKE2b-256 | 26b7ef48a8f1f81ae4cd6f22992f6ffb7e9bf030d6e6654e2e626a05aaf5e880 |
pytest_shutil-1.7.0-py2.7.egg的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 343a6902a8ed0cbd29cf8954e2726382228a2ad2f5f7eac589b0d0dff878d806 |
|
MD5 | 7cff4912956e2cd991622bd7b5044157 |
|
BLAKE2b-256 | c441a842321ae8ce78d98f25839fcc094c8d5afa811ea18a01cf155785c61407 |