Paul Rogers cfed036091
Add the new integration test framework (#12368)
This commit is a first draft of the revised integration test framework which provides:
- A new directory, integration-tests-ex that holds the new integration test structure. (For now, the existing integration-tests is left unchanged.)
- Maven module druid-it-tools to hold code placed into the Docker image.
- Maven module druid-it-image to build the Druid-only test image from the tarball produced in distribution. (Dependencies live in their "official" image.)
- Maven module druid-it-cases that holds the revised tests and the framework itself. The framework includes file-based test configuration, test-specific clients, test initialization and updated versions of some of the common test support classes.

The integration test setup is primarily a huge mass of details. This approach refactors many of those details: from how the image is built and configured to how the Docker Compose scripts are structured to test configuration. An extensive set of "readme" files explains those details. Rather than repeat that material here, please consult those files for explanations.
2022-08-24 17:03:23 +05:30

2.0 KiB

Testing Tools

it-tools is a copy of extensions-core/testing-tools (module name druid-testing-tools.)

The testing tools are added to the Druid test Docker image. The druid-testing-tools module defines most such additions. However, integration-tests defines a custom node role which also must be added to the image. integration-tests uses a different mechanism to do that addition.

Here, we want a single extension for all the testing gizmos. This is a direct copy of the druid-testing-tools extension, along with a copy of the custom node role from integration-tests.

The reason this is a copy, rather than fixing up druid-testing-tools is that the existing integration-tests must continue to run and it is very difficult to change or test them. (Which is the reason for this parallel approach.) To keep backward compatibility, and to avoid changing integration-tests, we keep the prior approach and make copies here for the new approach.

The names should never clash: it-tools is only ever used within the docker-test project, and the druid-testing-tools is not included as a dependency.

Over time, once integration-tests are converted, then the druid-testing-tools module can be deprecated in favor of this one.