Fix CI: xunit test discovery and VSIX installer blocking - #54
Merged
Conversation
…e builds - vstest.console does not auto-load the xunit adapter from the output directory and exits 0 with 'No test is available' — pass /TestAdapterPath and hard-fail when no tests are discovered or no passing summary is printed - VSIXInstaller exits 8006 when MSBuild background nodes are still alive: install the Installer Projects extension before any build, taskkill blockers first, and build with /nr:false Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
The adapter DLL is not reliably copied to the test output directory, so /TestAdapterPath pointed at bin still discovered zero tests. Prefer the bin copy, fall back to the restored package in the NuGet cache, and log the bin contents for diagnosis. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
windows-latest now ships Visual Studio 18; the Installer Projects extension targets VS 2022 (v17) and cannot install there, which is the real cause of the VSIXInstaller failures. windows-2022 ships VS 2022. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
VSTest prints 'Test Run Successful.' rather than 'Passed!' — all 44 tests passed but the guard rejected the summary. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…nstall Start-Process does not set $LASTEXITCODE, so the Actions pwsh wrapper's trailing 'exit $LASTEXITCODE' returned taskkill's nonzero result even when VSIXInstaller succeeded (silent 11-minute 'failure' with no exception in the log). Reset $LASTEXITCODE, exit 0 explicitly, log the installer exit code, and dump the VSIX log tail on real failures. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
System.Data.SQLite.dll and System.Data.SQLite.EF6.dll used bare filenames as SourcePath, resolved relative to the Setup folder — they only built because untracked local copies existed there. Point them at FSTRaK\bin\x64\Release like the other assembly entries so the vdproj builds on CI and on any clean checkout. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
VSIXInstaller nondeterministically hangs on fresh runners (succeeded in ~10 minutes on one run, hung past 20 on the next). Cap each attempt at 15 minutes, kill and retry once, and raise the step timeout to 35. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
The .mbtiles chart data lives in LFS; the default checkout left pointer files, producing a 33 MB MSI instead of ~347 MB. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Replace lfs:true checkout with cached .git/lfs keyed on the LFS object IDs plus git lfs pull — the mbtiles rarely change, so repeat runs cost no LFS bandwidth. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
Summary
No test is availableand still exited 0, so the check was green without running anything. Now passes/TestAdapterPathand hard-fails if no tests are discovered or no passing summary is printed./nr:false.Changes
.github/workflows/test.yml— TestAdapterPath + zero-test guard,/nr:false.github/workflows/release.yml— VSIX install moved before builds + taskkill, TestAdapterPath + zero-test guard,/nr:falseTest Plan
🤖 Generated with Claude Code