Fix test design flaw in IAsyncInitializer discovery test #4003
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Please check the following before creating a Pull Request
Problem
The test attempted to access
Fixture.GetTestCases()duringInstanceMethodDataSourceevaluation. This is impossible with source generation - the fixture is a runtime object created viaClassDataSource, but test discovery happens at compile-time.Changes
Updated test pattern to use predefined test cases:
TestExecutionsproperty now returns compile-time constant["TestCase1", "TestCase2", "TestCase3"]GetTestCases()method fromSimulatedContainerFixtureas it's no longer neededIAsyncInitializeris only initialized during execution, not discoveryCorrect pattern for users:
Outstanding Issue
The test is not being discovered by the source generator despite using the correct pattern. This appears to be a limitation when combining property-level
ClassDataSource<T>withInstanceMethodDataSourcewhere T implementsIAsyncInitializer. Requires further investigation or alternative test approach.💬 We'd love your input! Share your thoughts on Copilot coding agent in our 2 minute survey.