我正在将系统升级到Elasticsearch / Elastic4S 7.3,但是我在单元测试中遇到了问题。希望我缺少明显的东西。
当前(使用E4S 6.1.4),我使用ClassLocalNodeProvider为测试提供了一个本地http客户端(该客户端在Travis中针对每个GitHib拉取请求远程运行)
在E4S 7.x中,似乎无法直接替代LocalNode(?)
我确实尝试在下面的代码中用ClientProvider替换ClassLocalNodeProvider,但是看来我需要为客户端提供一个具体的定义:ElasticClient(我的ElasticClientProvider类的ES7版本确实期望使用ElasticClient而不是HttpClient)。
impl<'a> Parent<'a> {
pub fn set_child_ref(&'a mut self) {
self.child_ref.push(self.wrapper.get());
}
}
答案 0 :(得分:0)
E4S不再支持LocalNode,我现在使用Docker插件来创建一个普通的ES节点来运行测试。在本地工作,尚未经过Travis或Concourse测试。容器确实需要一些时间才能启动,然后它在具有动态分配的端口号的localhost上运行。
import org.testcontainers.elasticsearch.ElasticsearchContainer
val container = new ElasticsearchContainer()
container.setDockerImageName("docker.elastic.co/elasticsearch/elasticsearch-oss:7.3.0")
container.start()
val host = container.getHttpHostAddress()
val client: ElasticClient = new ElasticClient(JavaClient(ElasticsearchClientUri(s"http://${host}?ssl=false")))