用于py.test的elasticsearch过程和客户夹具。

pytest-elasticsearch的Python项目详细描述


Pytest弹性搜索

Latest PyPI versionWheel StatusSupported Python VersionsLicense

包裹状态

TestsCoverage StatusRequirements Status

这是什么?

这是一个pytest插件,使您能够测试依赖于运行中的elasticsearch搜索引擎的代码。 它允许您为ElasticSearch进程和客户端指定设备。

如何使用

警告

此设备至少需要ElasticSearch 1.0版才能工作。

插件包含两个固定装置:

  • elasticsearch-一个具有功能范围的客户端fixture,它在每次测试结束时清除elasticsearch。
  • elasticsearch_proc-一个会话范围的fixture,它在第一次使用elasticsearch实例时启动,在测试结束时停止。

只需将其中一个fixture包含到测试fixture列表中。

如果需要,您还可以创建其他ElasticSearch客户端和处理装置:

frompytest_elasticsearchimportfactorieselasticsearch_my_proc=factories.elasticsearch_proc(port=None,logsdir='/tmp')elasticsearch_my=factories.elasticsearch('elasticsearch_my_proc')

注意

通过fixture factory参数,每个elasticsearch过程fixture可以以不同的方式配置。

配置

可以通过三种方式定义设置,即fixture factory参数、命令行选项和pytest.ini配置选项。 您可以选择您喜欢的设置,但请记住,这些设置的处理顺序如下:

  1. fixture factory参数
  2. 命令行选项
  3. pytest.ini文件中的配置选项
Elasticsearch optionFixture factory argumentCommand line optionpytest.ini optionDefault
logs directorylogsdir–elasticsearch-logsdirelasticsearch_logsdir$TMPDIR
hosthost–elasticsearch-hostelasticsearch_host127.0.0.1
portport–elasticsearch-portelasticsearch_portrandom
cluster_namecluster_name–elasticsearch-cluster-nameelasticsearch_cluster_nameelasticsearch_cluster_<port>
index store typeindex_store_type–elasticsearch-index-store-typeelasticsearch_index_store_typememory
network publish hostnetwork_publish_host–elasticsearch-network-publish-hostelasticsearch_network_publish_host127.0.0.1
logs prefixlogs_prefix–elasticsearch-logs-prefixelasticsearch_logs_prefix
enable zen discoverydiscovery_zen_ping_multicast_enabled–elasticsearch-discovery-zen-ping-multicast-enabledelasticsearch_discovery_zen_ping_multicast_enabledFalse
transport tcp porttransport_tcp_port–elasticsearch-transport-tcp-portelasticsearch_transport_tcp_portrandom
configuration pathconfiguration_path–elasticsearch-configuration-pathelasticsearch_configuration_path/etc/elasticsearch

示例用法:

  • 在您自己的装置中将其作为参数传递

    elasticsearch_proc=factories.elasticsearch_proc(cluster_name='awsome_cluster)
  • 运行测试时使用--elasticsearch-logsdir命令行选项

    py.test tests --elasticsearch-cluster-name=awsome_cluster
    
  • pytest.ini文件中将目录指定为elasticsearch_cluster_name

    To do so, put a line like the following under the ^{tt4}$ section of your ^{tt3}$:

    [pytest]elasticsearch_cluster_name=awsome_cluster

更改日志

1.3.0

  • [功能]-支持主要的ElasticSearch版本

1.2.1

  • [清除]-删除path.py依赖项

1.2.0

  • [功能]-将getFuncArgValue的用法迁移到getFixtureValue。至少需要Pytest 3.0.0
  • [功能]-默认logsdir到$tmpdir
  • [功能]-默认情况下在随机端口上运行进程-增强XDist体验

1.1.0

  • [功能]使用tmpfile.gettempdir而不是硬编码的/tmp目录
  • [文档]向所有命令行和ini选项添加了说明
  • [bugfix]使命令行选项的dests more distinc,以防止影响其他pytest插件

1.0.0

  • [功能]pytest.ini选项用于每个命令行选项
  • [功能]每个fixture factory参数的命令行选项
  • 从pytest dbfixtures中提取原始代码

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

推荐PyPI第三方库


热门话题
onclicklistner中的java全局变量   Android中的Tensorflow:java。尼奥。BufferOverFlowException   java无法预先部署处于无效状态的PersistenceUnit[PU][DeployFailed]   java Liferay;将其他参数传递给jQuery UI aotocompleter   java如何使用Netflix/Eureka服务中的发现信息在Netflix/Zuul和Netflix/Ribbon中启用自动路由?   java如何使用命令打开spotlight   java Android为按钮分配数组值   jsp java。NoClassDefFoundError:即将推出java servlet   应用程序存储设置的java意图   java Android viewflow验证   java如何为多个列表重用BaseAdapter视图   在Java中,socket通过internet发送多播数据包   JavaXStream加载自定义XML