Skip to content

Testing

Andrey Kurilov edited this page Nov 12, 2017 · 14 revisions

Automated Testing

Functional Tests

Unit Tests

./gradlew clean :tests:unit:test

System Tests

The system tests use the JUnit parameterization. The parameter values are taken from the environment. The list of the system tests parameters below:

Parameter Name Acceptable Values Values Meaning
STORAGE_TYPE s3, atmos, emcs3, fs, swift (the same)
DRIVER_COUNT local, distributed 1, 2
CONCURRENCY unlimited, single, small, medium, high 0, 1, 10, 100, 1000
ITEM_SIZE empty, small, medium, large, huge 0, 10KB, 1MB, 100MB, 10GB

To run the system tests for the particular case use the commands like below:

export STORAGE_TYPE=s3
export DRIVER_COUNT=distributed
export CONCURRENCY=medium
export ITEM_SIZE=large
./gradlew -Dtest.single=ChainLoadStepTest clean :tests:system:test

Note that some system tests will not run for some parameter values. The acceptable parameter values are declared explicitly in the .travis.yml file.

Containerized Tests

Since v3.6.0 there are the containerized system tests are introduced. To run such test locally it's necessary to prepare 4 testing Docker images manually:

docker build \
    -f docker/Dockerfile \
    -t emcmongoose/mongoose:testing \
    .
docker push emcmongoose/mongoose:testing
docker build \
    --build-arg MONGOOSE_VERSION=testing \
    -f docker/Dockerfile.storage-driver-service \
    -t emcmongoose/mongoose-storage-driver-service:testing \
    .
docker push emcmongoose/mongoose-storage-driver-service:testing
docker build \
    --build-arg MONGOOSE_VERSION=testing \
    -f docker/Dockerfile.scripting-groovy \
    -t emcmongoose/mongoose-scripting-groovy:testing \
    .
docker push emcmongoose/mongoose-scripting-groovy:testing
docker build \
    --build-arg MONGOOSE_VERSION=testing \
    -f docker/Dockerfile.scripting-jython \
    -t emcmongoose/mongoose-scripting-jython:testing \
    .
docker push emcmongoose/mongoose-scripting-jython:testing

Also it's necessary to supply the testing image version to the system test via environment variable MONGOOSE_VERSION:

export MONGOOSE_VERSION=testing
export STORAGE_TYPE=atmos
export DRIVER_COUNT=distributed
export CONCURRENCY=medium
export ITEM_SIZE=small
./gradlew -Dtest.single=CreateNoLimitTest clean :tests:system:test

Component Tests

Performance Tests

./gradlew clean :tests:perf:test
Clone this wiki locally