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?

Reply via email to