Running the integration tests

If you've checked out the code and made changes to the platform, you may want to run the platform integration tests. These are some instructions on how to run the integration tests on your developer machine.

In Maven

To run the integration tests in MAVEN you need to boot the backend services.

cd molgenis-platform-integration-tests/integ-test-env;
docker-compose up -d;

And then run the MAVEN command.

mvn verify -pl molgenis-platform-integration-tests --batch-mode \
  -Dmaven.test.redirectTestOutputToFile=true \
  -Dit_db_user=postgres \
  -Dit_db_password=postgres \
  -Dit_db_port=5432;

When finished please execute:

docker-compose down

IMPORTANT: this is another stack than the one in molgenis-app/dev-env. Do NOT run these at the same time.

In IntelliJ

When developing, you can run the integration tests as usual.

IMPORTANT: make sure you have no MOLGENIS dev-env or other docker-compose stacks running. Check your "docker-tab" in IntelliJ or run docker ps on the commandline.

Please boot the backend services with the docker-compose stack in the source-tree.

  • Navigate to molgenis-platform-integration-tests/integ-test-env

  • Right click the docker-compose.yaml, click on Create 'integ-test-env: Compose...'

  • Check the option --build, force build images

  • Add the following variables to the environment:

MOLGENIS_FRONTEND=molgenis/molgenis-frontend:latest
# MacOS: host.docker.internal
# Windows: docker.for.win
# Linux: 172.17.0.1 (bridge) or 127.0.0.1 (host)
MOLGENIS_HOST=host.docker.internal
# Window & MacOS: bridge, Linux: host
NETWORK_MODE=bridge
  • Run the 'integ-test-env: Compose...' Run configuration

  • Then click on the molgenis-platform-integration-tests module and click Run --> All Tests (TestNG)

The code will not make any attempts to delete the integration test database and index. (But you can easily create and call a cleanup script yourself to use when needed.)

system properties

By default, IntelliJ reads system properties from your pom.xml and adds those to the test runs.

This won't work!

You should disable this feature:

  • Navigate to the Running Tests properties

    • For Windows

      Go to Settings / Build, Execution, Deployment / Build tools / Maven / Running Tests

    • For Mac

      Go to Preferences / Settings / Build, Execution, Deployment / Build tools / Maven / Running Tests

  • Uncheck the box labelled systemPropertyVariables

When building pull requests

A travis config file is added that shows travis how to build molgenis and execute the integration tests. These will be run on travis-ci.org when you make a pull request to the github molgenis/molgenis repository. The integration tests run in maven in the postgres database provided by travis. user is travis, database name is travis, password is blank The build script uses the default options to create a elasticsearch cluster.

Concurrent builds on a single machine

The maven build can handle concurrent builds on a single machine. It'll launch a new elasticsearch instance for each run. However, starting up additional elasticsearch instances can become rather slow for concurrent builds.

Last updated