Team, As part of validating the new JDBC connector for Geode, we have a need for tests that involving connecting to specific databases (like MySQL and Postgres) to validate proper function with those databases. Since these tests require connecting to outside services, unlike existing Geode tests, we are seeking suggestions on how to best incorporate such tests into Geode. The approach we have taken so far is to utilize Docker (and Docker Compose) to take care of spinning up our external services for the duration of the tests. This, however requires that Docker and Docker Compose be installed on any machine that the tests are run on. Additionally, the Concourse pipeline for validating develop is incompatible with use of Docker for distributed tests, due to the way they are already being run within Docker containers of their own (it seems possible to make it work, but would add overhead to all tests and would be a challenge to implement).
To address these issues, we are considering having these tests run under a new task, such as "serviceTest" (instead of IntegrationTest or distributedTest). That way, developers could run all other tests normally on their machines, only requiring Docker and Docker Compose if they wish to run these specific tests. This would also allow them to be their own task in Concourse, eliminating the issues that plague integrating these tests there. Are there other ideas on how to manage these tests or concerns with the proposed approach?