Elasticsearch fixtures和fixture factories for Pytest。
项目描述
pytest-elasticsearch
这是什么?
这是一个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配置选项。您可以选择您喜欢的,但请记住,这些设置按以下顺序处理
固定装置工厂参数
命令行选项
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 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 0271d57a7c3bd4712643e4a32a9210739d7ae4c0ca804dbd08717cb560b85949 |
|
MD5 | 0fc81ead25706ae3f048de2d9abdd8fe |
|
BLAKE2b-256 | ef1bd51a169c110b654097f27abe63f47310aa67ba4e66932f75500fffdbc191 |
pytest_elasticsearch-4.1.0-py3-none-any.whl 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 9f8250cd9ea70316ec19051da20d8e8660c7fd7f11be9e788f134404a2fa0db0 |
|
MD5 | b061f5a28e5ef7c66fe4022979a16042 |
|
BLAKE2b-256 | 2cc0ded5cb2fd25a30c9e5e93916e9a831a001190b1c81f0805d87a4b72081ed |