Skip to content

Add selection-misses: failures dotnet-tia's selection had skipped - #44

Merged
SebHenn merged 2 commits into
mainfrom
feat/tia-selection-misses
Oct 24, 2026
Merged

SebHenn merged 2 commits into
mainfrom
feat/tia-selection-misses

Conversation

@SebHenn

@SebHenn SebHenn commented Oct 24, 2026

Copy link
Copy Markdown
Owner

The cifail side of dotnet-tia#75. The dotnet-tia side is dotnet-tia#83.

What it adds

cifail selection-misses --tia <report.json> <test reports...> names the failing tests that dotnet-tia's selection had skipped on the pull request: candidate selection misses.

  • Core: CiFail.Core.Analysis.SelectionMisses is pure, and has its own tests.
    • It reads the dotnet-tia report and refuses one that isn't schema 1, or was written without --report-skipped, saying how to write one.
    • It matches a failure at method level, with a parameterised case's arguments dropped. JUnit's classname + name are joined. A bare method name (TRX from MSTest) matches only when exactly one skipped test ends with it.
    • It reports each test once, even when two frameworks failed it.
  • CLI: SelectionMissesCommand.
    • Files, directories and globs go through AnalysisInputs, like analyze.
    • A non-report input (a results directory has the runner's log beside the TRX) is skipped with a warning on stderr. Input containing no report at all is a usage error, never "no miss".
    • Exit 0/1/2 follow the existing Ok/Negative/Usage. --json prints {tia, failingTests, misses[]}.
  • Docs: a README section, and a changelog entry under Unreleased. No release here.

End to end

I ran this against dotnet-tia's fixture solution:

  1. dotnet tia analyze --report r.json --report-skipped on a change to Calculator.Add. It skipped 7 of 9 xUnit tests and all 3 NUnit tests.
  2. I broke Subtract and ran the xUnit project with --report-trx.
  3. cifail selection-misses --tia r.json <trx dir> named Fixtures.Tests.CalculatorTests.Subtracts (Fixtures.Tests) with its assertion message, warned about the .log in the directory, and exited 1.

Tests

  • New SelectionMissesTests (Core, 13).
  • New SelectionMissesCommandTests (CLI, 7).
  • selection-misses is added to HelpTests.
  • Suites: Core 514/514, Cli 195/195, Server 63/63, before the warning change. The CLI class was re-run after it: 7/7.

🤖 Generated with Claude Code

SebHenn and others added 2 commits October 24, 2026 20:59
Reads the dotnet-tia report (run --report <file> --report-skipped) and
JUnit/TRX results of the run that failed, and names each failing test
the selection had skipped as a candidate selection miss. Exit 1 when
there are some; input with no test report is refused.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@SebHenn
SebHenn merged commit 536ec60 into main Oct 24, 2026
7 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant