66c456c1c82533296b7b616724f5596a4cfd1b64
NUnit's default FixtureLifeCycle is SingleInstance — every test in a class shares one fixture instance, so [SetUp]-initialised fields like _master / _viewer / _service are reset on every test against the same object. Under serial execution that's fine; under parallel execution concurrent SetUps wipe each other's Mock setups and the service code NREs trying to dereference unconfigured stubs. Compounding it, NewInMemoryDb was being called with nameof(SetUp) which is the literal string "SetUp", so every test in the fixture also shared the same EF InMemory database (the provider keys stores by name). Two fixes: - [FixtureLifeCycle(LifeCycle.InstancePerTestCase)] on StoryServiceTests so each test gets its own instance with its own Mocks. - Suffix the InMemoryDb name with a Guid so concurrent callers never share a store. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
Description
The SV Simulator server code, including the DCG Engine, SVSim content, and an entrypoint for the official game client.
Languages
C#
100%