用于py.test的elasticsearch过程和客户夹具。
pytest-elasticsearch的Python项目详细描述
这是什么?
这是一个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配置选项。 您可以选择您喜欢的设置,但请记住,这些设置的处理顺序如下:
- fixture factory参数
- 命令行选项
- pytest.ini文件中的配置选项
Elasticsearch option | Fixture factory argument | Command line option | pytest.ini option | Default |
---|---|---|---|---|
logs directory | logsdir | –elasticsearch-logsdir | elasticsearch_logsdir | $TMPDIR |
host | host | –elasticsearch-host | elasticsearch_host | 127.0.0.1 |
port | port | –elasticsearch-port | elasticsearch_port | random |
cluster_name | cluster_name | –elasticsearch-cluster-name | elasticsearch_cluster_name | elasticsearch_cluster_<port> |
index store type | index_store_type | –elasticsearch-index-store-type | elasticsearch_index_store_type | memory |
network publish host | network_publish_host | –elasticsearch-network-publish-host | elasticsearch_network_publish_host | 127.0.0.1 |
logs prefix | logs_prefix | –elasticsearch-logs-prefix | elasticsearch_logs_prefix | |
enable zen discovery | discovery_zen_ping_multicast_enabled | –elasticsearch-discovery-zen-ping-multicast-enabled | elasticsearch_discovery_zen_ping_multicast_enabled | False |
transport tcp port | transport_tcp_port | –elasticsearch-transport-tcp-port | elasticsearch_transport_tcp_port | random |
configuration path | configuration_path | –elasticsearch-configuration-path | elasticsearch_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中提取原始代码