Skip to content

test(domain): verify xUnit v3 source-level fixes — no changes needed (#164) - #171

Closed
mpaulosky wants to merge 3 commits into
sprint/7-xunit-v3-pilotfrom
squad/164-domain-tests-xunit-v3-fixes
Closed

test(domain): verify xUnit v3 source-level fixes — no changes needed (#164)#171
mpaulosky wants to merge 3 commits into
sprint/7-xunit-v3-pilotfrom
squad/164-domain-tests-xunit-v3-fixes

Conversation

@mpaulosky

Copy link
Copy Markdown
Owner

Summary

Verifies all #164 acceptance criteria after the Domain.Tests xUnit v3 migration (see #163 / PR #170). No source fixes required — the migration was clean.

Working as Gimli (Tester) 🪓

Closes #164
Depends on PR #170 (merge first)

Acceptance Criteria Verification

AC Check Result
dotnet build tests/Domain.Tests -c Release clean (warnings-as-errors) TreatWarningsAsErrors=true; CodeAnalysisTreatWarningsAsErrors=false exempts CA analyzer warnings by design ✅ 0 errors
dotnet test tests/Domain.Tests -c Release --no-build all pass Ran against xUnit v3 binaries ✅ 42/42
dotnet run --project tests/Domain.Tests -c Release (standalone MTP) xUnit v3 MTP integration confirmed ✅ "Total: 42, Errors: 0, Failed: 0"
No async void tests; no removed types in use Code inspection + compile confirms ✅ Verified
Coverage produced via Coverlet coverage.cobertura.xml generated ✅ Confirmed

Changes

File Change
.squad/agents/gimli/history.md Sprint 7 migration learnings + key v3 facts

Key Learnings Documented

  • xunit.v3 is the package name (not xunit at v3.x)
  • [Fact]/[Theory] are preserved unchanged in v3 (no renames)
  • IAsyncLifetime now returns ValueTask — relevant for Integration.Tests in Sprint 10–11
  • dotnet run standalone executable works via MTP
  • Coverlet + --collect:"XPlat Code Coverage" unaffected

⚠️ Note: Pippin's ADR (pippin-xunit-v3-adr.md) incorrectly states [Fact][Test]. Decision inbox entry gimli-xunit-v3-test-patterns.md documents the correction for Scribe to reconcile.

Boromir and others added 2 commits April 24, 2026 18:53
- Add xunit.v3 3.2.2 to Directory.Packages.props
- Replace xunit → xunit.v3 package reference in Domain.Tests.csproj
- Add xunit.runner.json with v3-compatible runner configuration
- All 42 tests pass; no source file changes required (simple Facts/Theories)

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
- Document migration pattern, key facts, and pilot results
- Clarify [Fact]/[Theory] preserved unchanged in v3
- Note IAsyncLifetime ValueTask change for future sprints
- Correct Pippin's ADR [Fact]→[Test] misstatement via decisions inbox

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Copilot AI review requested due to automatic review settings April 25, 2026 01:56
@github-actions

Copy link
Copy Markdown
Contributor

🏗️ PR Added to Squad Triage Queue

This PR has been labeled with squad and added to the triage queue.

Next steps:

  • The squad Lead will review and assign to an appropriate team member
  • A squad:member label will be added after triage

If you know which squad member should handle this, you can add the appropriate squad:member label yourself.

@github-actions github-actions Bot added the squad Squad triage inbox — Lead will assign to a member label Apr 25, 2026

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Verifies the Sprint 7 xUnit v3 migration for tests/Domain.Tests and documents the results/learnings for future rollouts.

Changes:

  • Add xunit.v3 to central package versions and switch Domain.Tests to reference it.
  • Add xunit.runner.json configuration and copy it to test output.
  • Document Sprint 7 migration verification and key xUnit v3 learnings in Gimli’s history.

Reviewed changes

Copilot reviewed 4 out of 4 changed files in this pull request and generated 3 comments.

File Description
tests/Domain.Tests/xunit.runner.json Introduces xUnit runner configuration (display + parallelization + diagnostics).
tests/Domain.Tests/Domain.Tests.csproj Swaps xunitxunit.v3 and ensures runner config is emitted to output.
Directory.Packages.props Adds centralized version for xunit.v3.
.squad/agents/gimli/history.md Records verification steps/results and migration learnings for Sprint 7.

Comment on lines +19 to +25
<PackageReference Include="xunit.v3"/>
<PackageReference Include="xunit.runner.visualstudio"/>
</ItemGroup>

<ItemGroup>
<Content Include="xunit.runner.json" CopyToOutputDirectory="PreserveNewest"/>
</ItemGroup>

Copilot AI Apr 25, 2026

Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Domain.Tests.csproj doesn't explicitly set <OutputType>Exe</OutputType>, even though the PR/issue context claims standalone dotnet run (MTP) is verified and earlier migration notes mention OutputType=Exe. If xunit.v3 isn't implicitly flipping the output type, dotnet run will fail for a library project; consider setting <OutputType>Exe</OutputType> explicitly (or update the PR description if it's intentionally omitted and still works).

Copilot uses AI. Check for mistakes.
</ItemGroup>

<ItemGroup>
<Content Include="xunit.runner.json" CopyToOutputDirectory="PreserveNewest"/>

Copilot AI Apr 25, 2026

Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

xunit.runner.json is already included as a default None item in SDK-style projects; adding it via <Content Include=...> can create duplicate items and differs from the established pattern in tests/Web.Tests.Integration/Web.Tests.Integration.csproj (uses <None Update="xunit.runner.json"> with CopyToOutputDirectory). Recommend switching this to <None Update="xunit.runner.json"> to match repo convention and avoid item duplication.

Suggested change
<Content Include="xunit.runner.json" CopyToOutputDirectory="PreserveNewest"/>
<None Update="xunit.runner.json" CopyToOutputDirectory="PreserveNewest"/>

Copilot uses AI. Check for mistakes.
Comment on lines +274 to +285
## 2026-04-24 — Sprint 7: xUnit v3 Pilot — Domain.Tests Migration (#163 / #164)

### Task
Migrate `tests/Domain.Tests` from xUnit v2 (2.9.3) to xUnit v3 (3.2.2) as the Sprint 7 pilot, then verify no remaining compilation/runtime issues (issue #164).

### Work Done

**Branch**: `squad/163-domain-tests-xunit-v3-migration` / `squad/164-domain-tests-xunit-v3-fixes`

1. **`Directory.Packages.props`** — Added `xunit.v3 3.2.2`; kept `xunit 2.9.3` for other projects still on v2.
2. **`Domain.Tests.csproj`** — Replaced `xunit` → `xunit.v3` package reference; added `xunit.runner.json` as `<Content CopyToOutputDirectory="PreserveNewest"/>`.
3. **`tests/Domain.Tests/xunit.runner.json`** — New file: `parallelizeAssembly: true`, `parallelizeTestCollections: true`, `methodDisplay: method`.

Copilot AI Apr 25, 2026

Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

PR description says "no source fixes required" and that the only change in this PR is .squad/agents/gimli/history.md, but this diff also modifies package management and the Domain.Tests project (adds xunit.v3, adds xunit.runner.json, etc.). Please reconcile the PR description (and/or split into separate PRs) so reviewers and release notes correctly reflect the actual changes.

Copilot uses AI. Check for mistakes.
@github-actions

Copy link
Copy Markdown
Contributor

Test Results Summary

209 tests  ±0   209 ✅ ±0   14s ⏱️ ±0s
  5 suites ±0     0 💤 ±0 
  5 files   ±0     0 ❌ ±0 

Results for commit aae5b9d. ± Comparison against base commit e7035b1.

@codecov

codecov Bot commented Apr 25, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
⚠️ Please upload report for BASE (sprint/7-xunit-v3-pilot@18e668f). Learn more about missing BASE report.

Additional details and impacted files
@@                    Coverage Diff                     @@
##             sprint/7-xunit-v3-pilot     #171   +/-   ##
==========================================================
  Coverage                           ?   72.53%           
==========================================================
  Files                              ?       43           
  Lines                              ?      721           
  Branches                           ?      112           
==========================================================
  Hits                               ?      523           
  Misses                             ?      149           
  Partials                           ?       49           
🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

@mpaulosky mpaulosky closed this Apr 25, 2026
@mpaulosky
mpaulosky deleted the squad/164-domain-tests-xunit-v3-fixes branch May 6, 2026 13:23
mpaulosky added a commit that referenced this pull request May 6, 2026
…emote branch prune (#237)

## Summary

Working as Ralph (Meta)

Closes #236

## Changes

- **Merged PR #235** — squash merged with all 23 CI checks passing
- **Pruned 6 stale remote branches** (Sprint 6–8 orphans, all associated
issues/PRs closed since April 2026):
  - `origin/squad/140-domain-servicedefaults-ca-warnings` (PR #156)
  - `origin/squad/153-web-infrastructure-warnings` (PR #157)
  - `origin/squad/154-webtests-bunit-warnings` (PR #158)
  - `origin/squad/155-test-assembly-ca1014` (PR #159)
  - `origin/squad/164-domain-tests-xunit-v3-fixes` (PR #171)
  - `origin/sprint/8-xunit-v3-pilot` (PR #188)
- **Updated `identity/now.md`**: Sprint 16 ready, remote hygiene
milestone noted
- **Updated `ralph/history.md`**: 2026-05-06 follow-up session log
appended

## Verification

- Pre-commit gate: ✅ 0 markdownlint errors
- Pre-push gate (build + tests + integration): ✅ all green

Co-authored-by: Boromir <boromir@squad.dev>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

squad Squad triage inbox — Lead will assign to a member

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants