I've been trying to write an integration test against elasticsearch transport client using ESIntegTestCase or against a dockerized ES cluster or spinning up an internaltestcluster.
All attempts failed with IllegalStateExceptions that are triggered by the randomization code in there. It seems that the transport client detects it is running in a test environment and changes behaviour forcing the code to run under a RandomizedRunner.
I think the ES test framework should not force this requirement.
(I need another running as our apps are build on Spring which require another runner for dependency injection.)
Our test framework relies on randomization. For randomization to be useful in testing, it must be repeatable. Therefore, we have guards against using non-repeatable randomness in tests. If you do not want to be subject to this requirement, I think that you should not use ESIntegTestCase. Alternatively, you're only subject to this requirement if randomized runner is on the classpath so you could try removing it but of course there are things that will be broken like any of the random methods in the test framework which might be invoked on you indirectly.
Apache, Apache Lucene, Apache Hadoop, Hadoop, HDFS and the yellow elephant
logo are trademarks of the
Apache Software Foundation
in the United States and/or other countries.