对于Solr 5,开发人员已经宣布,Solr服务器将soon be a standalone server,而不是过去的Webapp。

我的问题是,考虑到Solr不再是Web应用程序(实际上,目前仍然是Webapp,但很快就会改变),我将如何为集成测试启动一个干净的Solr实例。

将其作为webapp进行集成测试非常方便。我们可以只使用cargo-maven插件来部署战争并复制一些配置文件。对于独立的Solr服务器,我的选择是什么?

最佳答案

我遇到了同样的问题:一个使用Solr 4.x的项目[1]和一个由Maven和Cargo管理的大型集成套件。迁移到Solr 5.3.1之后,我不得不更改方法。

其实很简单:每个(TestCase)类都应扩展

org.apache.solr.SolrJettyTestBase


servlet引擎不会自动启动,这取决于您。相反,有一个@AfterClass方法(如果Jetty已启动)在测试方法结束时将其停止。

您可以在此处找到一个有效的示例[2]。



[1] https://github.com/agazzarini/SolRDF
[2] https://github.com/agazzarini/SolRDF/blob/master/solrdf/solrdf-integration-tests/src/test/java/org/gazzax/labs/solrdf/integration/IntegrationTestSupertypeLayer.java

10-06 05:30