elementary-data / elementary

The dbt-native data observability solution for data & analytics engineers. Monitor your data pipelines in minutes. Available as self-hosted or cloud service with premium features.
https://www.elementary-data.com/
Apache License 2.0
1.93k stars 165 forks source link

Add tox-based Integration Testing support for this package #1700

Open emmyoop opened 2 months ago

emmyoop commented 2 months ago

Description

dbt Labs is running integration tests for popular open source packages as part of continuous testing and release of dbt.

Add support for testing this package using tox, as described in Standardizing integration tests for popular dbt packages.

Acceptance Criteria

  1. Tests reside in the /integration_tests directory.
  2. Supported adapters are defined in supported_adapters.env at the project root. The variable SUPPORTED_ADAPTERS lists the supported adapters, separated by commas. (Note: Only adapters running in dbt Cloud are currently supported.)
  3. tox is used for running tests.
  4. Each adapter test is defined in the tox.ini file using the naming pattern testenv:dbt_integration_<ADAPTER>.
  5. The profiles.yml for integration tests uses specific naming conventions for the target and environment variables. Examples can be found in dbt-package-testing.

Who will this benefit?

This change will enable:

Final Note

dbt Labs will commence running tests only after the new tests have been released and are available in the latest package version on the hub.

haritamar commented 1 month ago

Hi @emmyoop ! Thanks for opening this, and sorry for just responding to it. This is a really cool infra and I appreciate the effort from dbt to test external packages as a part of your CD processes.

I can't promise a concrete timeline but we'll see when it's possible for us to make these changes (we already have an integration tests infra using py.test on multiple DWHs, but not with tox currently).

Itamar

emmyoop commented 1 month ago

@haritamar I've been working on trying to get this setup on your project for just postgres. Adding additional adapter testing is very straightforward at that point. I'll reach out if I have any questions.