Skip to content

Add Testcontainers-based integration tests for multi-provider CI #31

@cursor

Description

@cursor

Problem

~80 tests are marked inconclusive/skipped in CI because they require a live SQL Server at 127.0.0.1:1433. There are no integration tests against PostgreSQL, MySQL, or SQLite.

Current CI (PR #24) passes unit tests but cannot validate end-to-end CRUD/LINQ behavior against real databases.

Proposed solution

  1. Add Testcontainers for one or more providers in CI
  2. Categorize tests with [TestCategory("Integration")] vs unit tests
  3. Run integration tests in a separate CI job (or nightly) with service containers
  4. Keep fast unit-only job for PR feedback

Suggested starting point:

  • SQL Server container for existing DB-dependent tests
  • SQLite in-memory or file-based container for lightweight multi-provider coverage

Acceptance criteria

  • CI can run at least one integration test suite against a real database
  • Unit test job remains fast (< 2 min)
  • Integration tests are opt-in via category/filter
  • README documents how to run integration tests locally

Related

Complements #28 (unit test coverage). Reduces reliance on SkipIfDatabaseUnavailable() / Assert.Inconclusive.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions