ElasticSearch::TestServer - Start an ElasticSearch cluster for testing


    use ElasticSearch::TestServer;

    $ENV{ES_HOME} = '/path/to/elasticsearch';
    $ENV{ES_TRANSPORT} = 'http';

    my $es = ElasticSearch::TestServer->new(
        home        => '/path/to/elasticsearch',
        instances   => 3,
        transport   => 'http',
        ip          => '',
        trace_calls => 'logfile',
        port        => '9200',
        config      => { values to override}


ElasticSearch::TestServer is a utility module which will start an ElasticSearch cluster intended for testing, and shut the cluster down at the end, even if your code exits abnormally.

By default, it uses http transport, the local gateway, and starts 3 instances on localhost, starting with port 9200 if the transport is http, httplite, httptiny, curl, aehttp or 9500 if thrift.

It is a subclass of ElasticSearch, so ElasticSearch::TestServer->new returns an ElasticSearch instance.


Clinton Gormley, <>


Copyright (C) 2011 by Clinton Gormley

This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself, either Perl version 5.8.7 or, at your option, any later version of Perl 5 you may have available.