GV

GeezerVison

The World Wide Web, restored to 800 pixels of glory.

Home|About|Gaming cabinet|Archives|How it works|Starter sites

On this site

  • Sign in
  • ActionsCI/CD and automation
  • CodespacesCloud development environments
  • All Features
  • Documentation
  • Training
  • Certifications
  • Build with Copilot
  • Customize Copilot
  • Integrations
  • Trending repos
  • GitHub Sponsors
  • Developer articles
  • Enterprises

This view

  • Original page
  • New address

GeezerVison is showing github.com — Split integration tests per provider · Issue #4185 · feast-dev/feast

Split integration tests per provider #4185

New issue
Copy link
New issue
Copy link
Closed
Closed
Split integration tests per provider#4185
Copy link
Labels
kind/featureNew feature or requestNew feature or requestwontfixThis will not be worked onThis will not be worked on

Description

@tokoko
tokoko
opened on May 8, 2024
Issue body actions

Is your feature request related to a problem? Please describe.
Integration tests are currently run tests for all implementations (offline, online, registry, materialization engine) in a single pytest call. There are several problems with this approach:

  • It's easy to miss a required dependency in a particular extra as transitive dependencies from the whole project needs to be installed for tests to run.
  • Other implementation dependency might lead to downgrading the dependency for an implementation that's being tested. This means to that we will have library==0.1 tested in ci, while when user installs only the dependencies required for them, they will get library==0.2.
  • We run it local tests twice in ci, once only for local tests and then again for all. With each implementation having a separate test job, we could delay only it tests with ok-to-test label.
  • It's a chore to run tests only for the implementation that you're working on locally.

Cons:

  • we will have to compile python environments for each action run instead of now having only ci requirements file in the repo.
  • Lots of jobs in GH workflows (Is this a bad practce?)

Describe the solution you'd like
I'm thinking of splitting up into runs like this:

  • offline tests - will run tests from /offline_store and /materialization folders. will use default online store (sqlite), registry (file) and all applicable mat. engines whenever necessary.
    • test-python-integration-offline-file
    • test-python-integration-offline-duckdb
    • test-python-integration-offline-spark
    • ...
  • online tests - will run tests from /online_store and /materialization folders. will use default offline store (dask), registry (file) and all applicable mat. engines whenever necessary.
    • test-python-integration-online-sqlite
    • test-python-integration-online-redis
    • ...
  • registry tests - will run tests from /registration
    • test-python-integration-registry-file
    • test-python-integration-registry-sql
    • test-python-integration-registry-s3
    • ...

P.S. There's also e2e folder in integration tests, but at this point I'm not convinced it's actually necessary. One file is testing usage functionality which is set to be deleted anyway. test_universal_e2e.py seems to be a misplaced materialization test.

Activity

  1. tokoko
    added
    kind/featureNew feature or requestNew feature or request
    on May 8, 2024
  2. stale commented on Apr 26, 2025

    @stale
    staleBot
    on Apr 26, 2025 – with Stale
    More actions

    This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your contributions.

  3. stale
    added
    wontfixThis will not be worked onThis will not be worked on
    on Apr 26, 2025
  4. stale
    closed this as completedon May 6, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    kind/featureNew feature or requestNew feature or requestwontfixThis will not be worked onThis will not be worked on

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions

      You are visitor 01402503 — GeezerVison does not store the pages you look up.
      Best viewed with Netscape Navigator 4.7 or Internet Explorer 6 at 800×600. No cookies required.