4

使用 Java,我可以针对嵌入式 elasticsearch 节点编写测试,这为我提供了大量的测试可能性,例如测试索引配置和标记器,但更重要的是,我可以使用功能性、易于阅读和有效的测试来测试我的搜索服务,无需模拟客户端并在我的测试等中处理查询构建器和响应。我如何在.NET中做到这一点?

4

2 回答 2

7

您不能使用 .NET 在嵌入式模式下运行,您必须在某处与弹性搜索服务器对话。

使用嵌套,您可以轻松地与专门用于测试的不同索引进行对话,即

var uri = new Uri("http://localhost:9200");
var connectionSettings = new ConnectionSettings(uri, "my-test-index");
var client = new ElasticClient(connectionSettings);

my-test-index现在将用作未明确指定的每个调用的索引。根据您的测试的侵入性,您甚至可以创建一个以 guid 为后缀的索引,并在每次测试运行后删除该索引。

这也是 NEST 本身在运行集成测试时采用的方法: https ://github.com/elastic/elasticsearch-net/blob/develop/src/Tests/Nest.Tests.Integration/IntegrationSetup.cs

于 2013-10-21T13:12:53.913 回答
3

这实际上很容易实现。

请查看 Github 上的ElasticSearch-Inside项目。

本质上,这允许您从集成/单元测试中启动 ElasticSearch。这是通过 Java 运行时和 ElasticSearch 都嵌入在库的 dll 中来实现的。

安装 nuget 包并在单元测试中使用它的说明在项目的 github 页面上

于 2019-04-22T12:20:13.693 回答