Overtest is a suite of tools that allows to start and stop daemons for a quick throw-away usage. This is typically useful when needing these daemons to run integration testing.
Overtest currently supports:
- PostgreSQL
- MySQL
- Memcached
- InfluxDB
- Etcd
- Redis (with sentinel mode)
- Elasticsearch
- ZooKeeper
- Gnocchi
To use Overtest, simply call the overtest $daemon program that you need. It will setup the temporary environment and export a few environment variable for you to accesss it:
$ overtest postgresql psql template1 I: starting postgresql I: started postgresql I: executing command: psql template1 Expanded display is used automatically. Line style is unicode. SET psql (9.4.5) Type "help" for help. template1=# \l List of databases Name │ Owner │ Encoding │ Collate │ Ctype │ Access privileges ───────────┼───────┼──────────┼─────────────┼─────────────┼─────────────────── postgres │ jd │ UTF8 │ en_US.UTF-8 │ en_US.UTF-8 │ template0 │ jd │ UTF8 │ en_US.UTF-8 │ en_US.UTF-8 │ =c/jd ↵ │ │ │ │ │ jd=CTc/jd template1 │ jd │ UTF8 │ en_US.UTF-8 │ en_US.UTF-8 │ =c/jd ↵ │ │ │ │ │ jd=CTc/jd (3 rows) template1=# \q I: stopping postgresql I: stopped postgresql
You can also source overtest itself in one of your script. It will set the environment up, and will clean as soon as your script exit:
#!/bin/bash source overtest postgresql # Do something with PostgreSQL # The script will clean things for you
Overtest exports a few environment variable:
- OVERTEST_DAEMON which contains the name of the daemon launched
- OVERTEST_URL which contains the URL to the daemon
- OVERTEST_$daemon_* variables, which contains daemon specific variables, such as port, database name, URL, etc.
The sentinel mode of Redis can be enabled by setting the environment variable OVERTEST_REDIS_SENTINEL_ENABLE to any value.