Ground is built with SBT and uses the Play Framework.

Running the test suite

Before submitting a contribution, all existing test must pass and new test covering the added functionality should be added to the test suite.

The current integration test suite tests Ground against all supported backends. For the tests to work, it’s required to have a running instance of Apache Cassandra, PostgreSQL and Neo4J.

The test setup can be local to the development machine or use docker containers. The default configuration assumes that all servers are running in local mode (localhost).

Using a local installation

The db servers are installed directly on the development machine. See install.sh for an example on how to setup and configure the db servers.

Using Docker images

The backend dependencies can be run using standard docker images of the servers, available from Docker Hub.

Cassandra:

#get the latest version
docker pull cassandra:latest

#run a detached container
docker run -d cassandra:latest

PostgreSQL

#get the latest version
docker pull postgres:latest

#run a detached container
docker run -d postgres:latest

The postgres server requires setting up a test db and an user:

# We attach to the running container. The container id can be obtained using 'docker ps'
docker exec -i -t <postgres_container_id> /bin/bash

su - postgres
createdb test
createuser test -d -s
exit
exit

Neo4j

#get the lastest version
docker pull neo4j:latest

#run a detached container
docker run -d neo4j:latest

* Note that pulling the image is only needed the first time.