test: serialize Launcher.Tests via an assembly attribute, not xunit.runner.json
Some checks failed
CI / linux-portable (push) Successful in 3m10s
CI / windows-gate (push) Failing after 4m52s
CI / release (push) Has been skipped

MainWindowViewTests kept failing on CI in Test Case Cleanup ('The calling
thread cannot access this object') while passing 56/56 locally. The cause was
delivery, not the fix: xunit.runner.json only takes effect if it is copied
beside the test DLL, and under CI's 'dotnet build' + 'dotnet test --no-build'
split it did not arrive, so CI ran with parallel collections while local runs
did not.

[assembly: CollectionBehavior(DisableTestParallelization = true)] is compiled
into the DLL and cannot fail to deploy. It lives beside the existing
AvaloniaTestApplication/AvaloniaTestIsolation attributes, which document the
same thread-affinity hazard. The json and its csproj copy rule are removed so
there is one source of truth.
This commit is contained in:
Erik 2026-08-19 14:06:24 +02:00
parent daf28bfec5
commit 45f88d2d18
3 changed files with 9 additions and 16 deletions

View file

@ -23,14 +23,4 @@
<ItemGroup>
<ProjectReference Include="..\..\src\AcDream.Launcher\AcDream.Launcher.csproj" />
</ItemGroup>
<ItemGroup>
<!-- Avalonia's headless session is thread-affine, and its per-test cleanup
runs on whichever thread xUnit hands it. Under the default parallel
collections MainWindowViewTests failed in Test Case Cleanup with
"The calling thread cannot access this object because a different
thread owns it" while passing in isolation. Same serialization
settings AcDream.Core.Tests already uses. -->
<None Update="xunit.runner.json" CopyToOutputDirectory="PreserveNewest" />
</ItemGroup>
</Project>