py.test的MongoDB进程和客户端fixtures插件。
pytest-mongo的Python项目详细描述
这是什么?
这是一个pytest插件,它使您能够测试依赖于正在运行的mongodb数据库的代码。 它允许您为mongodb进程和客户端指定fixture。
如何使用
插件包含两个装置
- mongodb-这是一个具有功能范围的客户端fixture,它在每次测试结束时清理mongodb。
- mongo-proc-会话范围的fixture,在第一次使用时启动mongodb实例,在测试结束时停止。
只需将其中一个fixture包含到测试fixture列表中。
如果需要,您还可以创建其他MongoDB客户端和进程设备:
frompytest_mongoimportfactoriesmongo_my_proc=factories.mongo_proc(port=None,logsdir='/tmp')mongo_my=factories.mongodb('mongo_my_proc')
注意
每个mongodb进程fixture可以通过fixture工厂参数以不同的方式配置。
配置
可以通过三种方式定义设置,即fixture factory参数、命令行选项和pytest.ini配置选项。 您可以选择您喜欢的设置,但请记住,这些设置的处理顺序如下:
- ^{tt1}$
- ^{tt2}$
- ^{tt3}$
What | Fixture factory argument | Command line option | pytest.ini option | Default |
---|---|---|---|---|
Path to mongodb exec | executable | –mongo-exec | mongo_exec | /usr/bin/mongod |
MongoDB host | host | –mongo-host | mongo_host | 127.0.0.1 |
MongoDB port | port | –mongo-port | mongo_port | random |
Path to store logs | logsdir | –mongo-logsdir | mongo_logsdir | $TMPDIR |
Additional parameters | params | –mongo-params | mongo_params |
示例用法:
在您自己的装置中将其作为参数传递
mongo_proc=factories.mongo_proc(port=8888)
运行测试时使用--mongo-port命令行选项
py.test tests --mongo-port=8888
在pytest.ini文件中将目录指定为mongo_port。
To do so, put a line like the following under the ^{tt7}$ section of your ^{tt6}$:
[pytest]mongo_port=8888
更改日志
1.2.1
- 修复PYPI描述
1.2.0
- [增强]至少需要Pymongo 3.6
1.1.2
- [增强]删除path.py depdency
1.1.1
- [增强]将执行器超时设置为60。默认情况下,mirakuru会无限期等待,这可能会导致测试挂起
1.1.0
- [功能]-将getFuncArgValue的用法迁移到getFixtureValue。至少需要Pytest 3.0.0
1.0.0
- [功能]默认情况下,将dir记录到$tmpdir
- [功能]默认情况下在随机端口上运行(更容易集成xdist)
- [功能]添加命令行和ini选项:executable、host、port、params和logsdir