NAME

Test::mongod - run a temporrary instance of MongoDB

SYNOPSIS

  use Test::mongod;
  my $mongod = Test::mongod->new;  # thats it, you get a mongod server on a random port and in a /tmp dir

  ... more

  $mongod->port; # get the port the server is listening on
  $mongod->dbpath; # get the db dir
 
  

DESCRIPTION

Test::mongod automatically sets up a temporary instance of MongoDB and destroys it when the script ends.

The latest version of this is always at https://github.com/jshy/Test-mongod This is ALPHA code.

METHODS

new

  my $mongod = Test::mongod->new;

This creates a new instance of Test::mongod and instanciates a temporary MongoDB server This uses the moose BUILD method to go ahead and launche the server. This method blocks till the server is listening and ready to work.

stop

  $mongo->stop;

Stops the MongoDB instance and tears down the temporary directory. This method is called by DEMOLISH when the object goes out of scope.

ATTRIBUTES

bind_ip

The IP to bind the server on. Defaults to 127.0.0.1. Must be an IP on the localhost.

port

The port for the server to listen on. Defaults to a random port. Use this to get the port to feed to your client.

dbpath

The diorectory for the database server to put ts files. This defaults to a /tmp directory that will be cleaned up when the script finishes. Changes this will cause the directory to persist. Must be a path on the localhost.

pid

Contains the pid of the forked child process.

config

a hashref of config options you can give ether

    config => { } or 
    config_file => 'relative/path/to/conf/file'

config file must be something Config::Any recognizes. SEE EXAMPLE t/etc/mongo.conf if you have a t/etc/mongod.conf file then it will get picked up automatically NOTE: If you use config no config file gets read.

AUTHOR

Jesse Shy <jshy@cpan.org>

COPYRIGHT

Copyright 2014- Jesse Shy

LICENSE

This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself.

SEE ALSO