Files
mq-container/docs/testing.md
Luke J Powlett c9bac5b544 MQ 9.1.5 image changes (#62)
* Upgraded to MQ 9.1.5, upgraded to unzippable install, run as random UID (1001 by default)

* Updated docker tests for MQ 915 random UID

* Added warning to crtmqdir for 10 rc, added trace option to crtmqdir

* Removed dev users from dockerfile
2020-03-24 12:54:58 +00:00

1.9 KiB

Testing

Prerequisites

You need to ensure you have the following tools installed:

  • Docker
  • GNU make
  • Go - only needed for running the tests
  • dep (official Go dependency management tool) - needed to prepare for running the tests

Running the tests

There are two main sets of tests:

  1. Unit tests, which are run during a build
  2. Docker tests, which test a complete Docker image, using the Docker API

Running the Docker tests

The Docker tests can be run locally on a machine with Docker. For example:

make test-devserver
make test-advancedserver

You can specify the image to use directly by using the MQ_IMAGE_ADVANCEDSERVER or MQ_IMAGE_DEVSERVER variables, for example:

MQ_IMAGE_ADVANCEDSERVER=ibm-mqadvanced-server:9.1.5.0-amd64 make test-advancedserver

You can pass parameters to `go test` with an environment variable.  For example, to run the "TestGoldenPath" test, run the following command:

TEST_OPTS_DOCKER="-run TestGoldenPath" make test-advancedserver


You can also use the same environment variables you specified when [building](./building), for example, the following will try and test an image called `ibm-mqadvanced-server:9.1.5.0-amd64`:

MQ_VERSION=9.1.5.0 make test-advancedserver


### Running the Docker tests with code coverage
You can produce code coverage results from the Docker tests by running the following:

make build-advancedserver-cover make test-advancedserver-cover


In order to generate code coverage metrics from the Docker tests, the build step creates a new Docker image with an instrumented version of the code.  Each test is then run individually, producing a coverage report each under `test/docker/coverage/`.  These individual reports are then combined.  The combined report is written to the `coverage` directory.