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 |