Skip to content

Use modular fixture functions for integration test environments #4302

@tokoko

Description

@tokoko

Feast environment creation in integration tests are currently encapsulated in an Environment class which defers actual resource creation to classes extending OnlineStoreCreator, DataSourceCreator, etc.. While this is very flexible, the design leads to performance issues when Creator classes need to provision external resources, such as docker containers. There's no way to reuse containers between environments and the extra load often leads to tests being flaky.

An alternative is to redesign environment creation to use modular pytest fixture functions (fixtures depending on other fixtures). This will allow for root fixtures that are responsible for docker containers to be scoped to full sessions rather than individual tests.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions