我正在使用ElasticSearch-1.6.0
此链接设置 ES 测试
https://www.elastic.co/guide/en/elasticsearch/reference/1.6/using-elasticsearch-test-classes.html
和此链接
https://www.elastic .co/guide/en/elasticsearch/reference/1.6/integration-tests.html
获取客户端实例。
这是代码:
class CampaignESTest extends ElasticsearchIntegrationTest {
val client=ElasticsearchIntegrationTest.cluster().client()
}
但我得到一个NullPointerException
.
这是堆栈跟踪:
[info] Exception encountered when attempting to run a suite with class name: org.scalatest.DeferredAbortedSuite *** ABORTED ***
[info] java.lang.NullPointerException:
[info] at testcontrollers.campaign.CampaignESTest.<init>(CampaignESTest.scala:38)
[info] at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
[info] at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
[info] at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
[info] at java.lang.reflect.Constructor.newInstance(Constructor.java:423)
[info] at java.lang.Class.newInstance(Class.java:442)
[info] at org.scalatest.tools.Framework$ScalaTestTask.execute(Framework.scala:468)
[info] at sbt.ForkMain$Run$2.call(ForkMain.java:296)
[info] at sbt.ForkMain$Run$2.call(ForkMain.java:286)
CampaignESTest.scala:Line 38
是
val client=ElasticsearchIntegrationTest.cluster().client()
这是 build.sbt 文件:
"org.elasticsearch" % "elasticsearch" % "1.6.0",
"org.elasticsearch" % "elasticsearch" % "1.6.0" % "test" classifier "tests",
"org.apache.lucene" % "lucene-test-framework" % "4.10.4" % "test",
"com.carrotsearch.randomizedtesting" % "randomizedtesting-runner" % "1.6.0" % "test",
"org.apache.lucene" % "lucene-codecs" % "4.10.4" % "test",
"org.apache.logging.log4j" % "log4j-core" % "2.8.2",
"org.apache.logging.log4j" % "log4j-slf4j-impl" % "2.8.2" ,
"org.apache.logging.log4j" % "log4j-api" % "2.8.2",
为什么我得到一个NullPointerException
?当我这样做时,我得到了同样的例外
ElasticsearchIntegrationTest.client()
如何获取客户端对象?另外,我怎样才能得到一个transportClient
用于测试目的?