跳转到主要内容

Elasticsearch fixtures和fixture factories for Pytest。

项目描述

https://raw.githubusercontent.com/ClearcodeHQ/pytest-elasticsearch/master/logo.png

pytest-elasticsearch

Latest PyPI version Wheel Status Supported Python Versions License

这是什么?

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

如何使用

插件包含两个fixture

  • elasticsearch - 一个具有功能范围的客户端fixture,并在每个测试结束时清理Elasticsearch。

  • elasticsearch_proc - 一个会话作用域的固定装置,在第一次使用时启动Elasticsearch实例,并在测试结束时停止。

  • elasticsearch_nooproc - 一个无进程固定装置,用于保存已运行的Elasticsearch的连接数据。

只需将这些固定装置之一包含到您的测试固定装置列表中。

如果您需要,也可以创建额外的Elasticsearch客户端和进程固定装置。

from pytest_elasticsearch import factories

elasticsearch_my_proc = factories.elasticsearch_proc(port=None)
elasticsearch_my = factories.elasticsearch('elasticsearch_my_proc')

连接到已存在的Elasticsearch服务

一些项目正在使用已经运行的Elasticsearch服务器(例如在Docker实例上)。为了连接到它们,您将使用elasticsearch_nooproc固定装置。

es_external = factories.elasticsearch('elasticsearch_nooproc')

默认情况下,elasticsearch_nooproc固定装置将使用端口号9300连接到Elasticsearch实例。

配置

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

  1. 固定装置工厂参数

  2. 命令行选项

  3. pytest.ini文件中的配置选项

配置选项

ElasticSearch选项

固定装置工厂参数

命令行选项

pytest.ini选项

Noop进程固定装置

默认

Elasticsearch可执行文件

可执行文件

–elasticsearch-executable

elasticsearch_executable

/usr/share/elasticsearch/bin/elasticsearch

主机

主机

–elasticsearch-host

elasticsearch_host

主机

127.0.0.1

端口

端口

–elasticsearch-port

elasticsearch_port

6300

随机

Elasticsearch集群名称

cluster_name

–elasticsearch-cluster-name

elasticsearch_cluster_name

elasticsearch_cluster_<port>

索引存储类型

index_store_type

–elasticsearch-index-store-type

elasticsearch_index_store_type

mmapfs

网络发布主机

network_publish_host

–elasticsearch-network-publish-host

elasticsearch_network_publish_host

127.0.0.1

传输TCP端口

transport_tcp_port

–elasticsearch-transport-tcp-port

elasticsearch_transport_tcp_port

随机

示例用法

  • 将其作为参数传递给您的固定装置

    elasticsearch_proc = factories.elasticsearch_proc(
        cluster_name='awsome_cluster)
  • 在您的pytest.ini文件中将您的目录指定为elasticsearch_cluster_name

    为此,在您的pytest.ini文件中的[pytest]部分下添加如下一行:

    [pytest]
    elasticsearch_cluster_name = awsome_cluster

已知问题

可能会发生,进程无法启动,因为权限不足。运行测试的用户必须有权访问以下文件

  • /etc/default/elasticsearch

请确保您要么以有权访问这些文件的用户的身份运行测试,要么给用户适当的权限或将用户添加到适当的用户组。

在CI中,我们目前从tar/zip存档中安装elasticsearch,这些存档不会设置额外的权限限制,因此在CI/CD中这不是问题。

包资源

项目详情


下载文件

为您的平台下载文件。如果您不确定要选择哪个,请了解有关安装包的更多信息。

源分布

pytest-elasticsearch-4.1.0.tar.gz (27.5 kB 查看散列)

上传时间: 源代码

构建分发版

pytest_elasticsearch-4.1.0-py3-none-any.whl (26.1 kB 查看哈希值)

上传时间: Python 3

由以下支持