Skip to content

Split MSSQL integration tests into parallel pipeline jobs and remove MSSQL category from generic unit tests#3245

Draft
aaronburtle wants to merge 10 commits intomainfrom
dev/aaronburtle/FactorOutGenericTestsfromMSSQLPipeline
Draft

Split MSSQL integration tests into parallel pipeline jobs and remove MSSQL category from generic unit tests#3245
aaronburtle wants to merge 10 commits intomainfrom
dev/aaronburtle/FactorOutGenericTestsfromMSSQLPipeline

Conversation

@aaronburtle
Copy link
Contributor

@aaronburtle aaronburtle commented Mar 12, 2026

Why make this change?

Closes #3244

What is this change?

This PR makes two changes to improve MSSQL integration test pipeline performance:

  1. Removed TestCategory(TestCategory.MSSQL) from 5 unit test files that are not MSSQL-specific. These tests do not require a database and should run in the unit test pipeline instead:

    • RequestValidatorUnitTests.cs
    • EntitySourceNamesParserUnitTests.cs
    • RequestContextUnitTests.cs
    • RestServiceUnitTests.cs
    • RuntimeConfigLoaderJsonDeserializerTests.cs
  2. Split the single Windows MSSQL integration test job into 2 parallel jobs to reduce execution time:

    • Windows - Combined Integration Tests: GraphQL, REST, Unit, HotReload, OpenApi, Authorization, Telemetry, and Caching tests (1,246 tests). SqlTestBase-inheriting tests (GraphQL, REST) naturally create the DB schema for the co-located tests.

    • Window - Configuration Tests: Pure ConfigurationTests (207 tests). Since this job has no SqlTestBase tests, a System.Data.SqlClient-based schema initialization step creates the DB schema before test execution.

A new reusable step template mssql-test-steps.yml avoids duplicating the ~130 lines of shared setup (NuGet auth, .NET SDK, LocalDB install/start, build, test, coverage publish) across the 2 jobs. It includes an optional initDbSchema parameter for jobs that need explicit schema creation.

How was this tested?

Run against the pipeline.

@aaronburtle
Copy link
Contributor Author

/azp run

@azure-pipelines
Copy link

Azure Pipelines successfully started running 6 pipeline(s).

@aaronburtle
Copy link
Contributor Author

/azp run

@azure-pipelines
Copy link

Azure Pipelines successfully started running 6 pipeline(s).

@aaronburtle
Copy link
Contributor Author

/azp run

@azure-pipelines
Copy link

Azure Pipelines successfully started running 6 pipeline(s).

@aaronburtle
Copy link
Contributor Author

/azp run

@azure-pipelines
Copy link

Azure Pipelines successfully started running 6 pipeline(s).

@aaronburtle
Copy link
Contributor Author

/azp run

@azure-pipelines
Copy link

Azure Pipelines successfully started running 6 pipeline(s).

@aaronburtle
Copy link
Contributor Author

/azp run

@azure-pipelines
Copy link

Azure Pipelines successfully started running 6 pipeline(s).

@aaronburtle
Copy link
Contributor Author

/azp run

@azure-pipelines
Copy link

Azure Pipelines successfully started running 6 pipeline(s).

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Fix MSSQL Integration Test timeout

1 participant