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.