py.test的MongoDB进程和客户端fixtures插件。

pytest-mongo的Python项目详细描述


Pytest mongo

Latest PyPI versionWheel StatusSupported Python VersionsLicense

包裹状态

TestsCoverage StatusRequirements Status

这是什么?

这是一个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}$
WhatFixture factory argumentCommand line optionpytest.ini optionDefault
Path to mongodb execexecutable–mongo-execmongo_exec/usr/bin/mongod
MongoDB hosthost–mongo-hostmongo_host127.0.0.1
MongoDB portport–mongo-portmongo_portrandom
Path to store logslogsdir–mongo-logsdirmongo_logsdir$TMPDIR
Additional parametersparams–mongo-paramsmongo_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

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java使用ContentExchange设置请求属性   java Spark/Hdfs/Hdfsclient兼容性   java springcloudstreamkafka配置:instanceCount和instanceIndex   Java中web服务序列化日期   java用动态数据替换占位符   java git gc似乎覆盖了一个packfile,留下了一个打开的文件描述符,其中包含对“oldxxx.pack”的引用   为什么Apache项目对Java版本敏感?   java Anylogic帮助如何在导入的3dobject通过输送机上的多个“站”时更改其颜色?   JavaEclipseNeonM2E可以导入一个大型项目,但似乎不能自动解决依赖关系   java@FindBy搜索具有满足条件的子元素的元素   java如何将ActionEvent e与键绑定一起使用?   java转换以集中方式从外部库抛出的异常   java中用户文件/数据文件与系统/程序文件的区别   java使用变量字符串或字符作为对象名   字体使用Java图形操纵字符串中每个字符的形状   JavaFX图表移动数据   java RandomAccessFile:将所有项设置为相同的字节数?   java Google Play inapp Billing onPurchasesUpdated()错误响应代码1   java在不知道属性名和属性数的情况下处理json对象   java是否可以一次从HazelcastInstance(映射和列表)中删除所有数据?