namespace MonoGame.Extended.Tests.Fixtures; /// /// Defines a shared test collection for graphics tests to prevent SDL initialization conflicts. /// /// IMPORTANT: This solves the critical issue where multiple graphics test classes would crash /// when run together due to SDL trying to initialize multiple times simultaneously. /// /// The problem: /// - Each test class with IClassFixture creates its own GameFixture instance /// - Each GameFixture creates a new MonoGame Game instance /// - Multiple Game instances try to initialize SDL at the same time /// - This causes a fatal 0xC0000005 error in Sdl.Init() /// /// The solution: /// - Use ICollectionFixture instead of IClassFixture /// - All graphics test classes use [Collection("Graphics")] attribute /// - This ensures only ONE GameFixture instance is shared across all graphics tests /// - SDL is initialized only once, preventing conflicts /// /// Usage: /// - Mark any test class that needs graphics with [Collection("Graphics")] /// - The test class constructor receives GameFixture as a parameter /// - All tests in the collection share the same GameFixture instance /// [CollectionDefinition("GraphicsTest")] public class GraphicsTestCollection : ICollectionFixture { // This class has no code, and is never created. Its purpose is simply // to be the place to apply [CollectionDefinition] and all the // ICollectionFixture<> interfaces. }