Lic*_*ici 17 solr unit-testing solrj
我正在为我的solr-indexer应用程序编写一些测试.在测试最佳实践之后,我想编写代码自我依赖,只需加载schema.xml和solrconfig.xml为索引搜索测试创建临时数据树.由于应用程序大部分是用java编写的,我正在处理SolrJ库,但是我遇到了问题(好吧,我在corecontainers的核心容器中丢失了 - coredescriptor-coreconfig-solrcore ...)任何人都可以放在这里用于创建加载配置的嵌入式服务器以及写入参数化数据目录的代码?
Mau*_*fer 12
您可以从SolrExampleTests开始,它扩展了扩展AbstractSolrTestCase的SolrExampleTestBase.
也是这个SampleTest.
小智 7
这是一个简单测试用例的例子.solr是包含solr配置文件的目录:
import java.io.IOException;
import org.apache.solr.client.solrj.embedded.EmbeddedSolrServer;
import org.apache.solr.util.AbstractSolrTestCase;
import org.apache.solr.client.solrj.SolrQuery;
import org.apache.solr.client.solrj.SolrServer;
import org.apache.solr.client.solrj.SolrServerException;
import org.apache.solr.client.solrj.response.QueryResponse;
import org.apache.solr.common.SolrInputDocument;
import org.apache.solr.common.params.SolrParams;
import org.junit.Before;
import org.junit.Test;
import static org.junit.Assert.assertEquals;
public class SolrSearchConfigTest extends AbstractSolrTestCase {
private SolrServer server;
@Override
public String getSchemaFile() {
return "solr/conf/schema.xml";
}
@Override
public String getSolrConfigFile() {
return "solr/conf/solrconfig.xml";
}
@Before
@Override
public void setUp() throws Exception {
super.setUp();
server = new EmbeddedSolrServer(h.getCoreContainer(), h.getCore().getName());
}
@Test
public void testThatNoResultsAreReturned() throws SolrServerException {
SolrParams params = new SolrQuery("text that is not found");
QueryResponse response = server.query(params);
assertEquals(0L, response.getResults().getNumFound());
}
@Test
public void testThatDocumentIsFound() throws SolrServerException, IOException {
SolrInputDocument document = new SolrInputDocument();
document.addField("id", "1");
document.addField("name", "my name");
server.add(document);
server.commit();
SolrParams params = new SolrQuery("name");
QueryResponse response = server.query(params);
assertEquals(1L, response.getResults().getNumFound());
assertEquals("1", response.getResults().get(0).get("id"));
}
}
有关详细信息,请参阅此博客帖子:Solr集成测试
首先,您需要设置Solr主目录,其中包含solr.xml和包含solrconfig.xml,schema.xml等的conf文件夹.
之后,您可以使用Solrj的这个简单和基本代码.
File solrHome = new File("Your/Solr/Home/Dir/");
File configFile = new File(solrHome, "solr.xml");
CoreContainer coreContainer = new CoreContainer(solrHome.toString(), configFile);
SolrServer solrServer = new EmbeddedSolrServer(coreContainer, "Your-Core-Name-in-solr.xml");
SolrQuery query = new SolrQuery("Your Solr Query");
QueryResponse rsp = solrServer.query(query);
SolrDocumentList docs = rsp.getResults();
Iterator<SolrDocument> i = docs.iterator();
while (i.hasNext()) {
System.out.println(i.next().toString());
}
Run Code Online (Sandbox Code Playgroud)
我希望这有帮助.
| 归档时间: |
|
| 查看次数: |
17842 次 |
| 最近记录: |