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.
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.