Skip to content

Fix TestResults-IO review-set structure and add IOTests.cs subsystem test suite#136

Merged
Malcolmnixon merged 2 commits into
mainfrom
copilot/validate-review-sets-and-requirements
Apr 4, 2026
Merged

Fix TestResults-IO review-set structure and add IOTests.cs subsystem test suite#136
Malcolmnixon merged 2 commits into
mainfrom
copilot/validate-review-sets-and-requirements

Conversation

Copy link
Copy Markdown
Contributor

Copilot AI commented Apr 3, 2026

Pull Request

Description

Corrects the structure of the .reviewmark.yaml review-sets to follow the required pattern where each review-set contains exactly three items: requirements, design, and test suite.

TestResults-IO subsystem review-set was over-populated with all unit-level files. It has been trimmed to the correct three subsystem-level items:

  • docs/reqstream/test-results/io/io.yaml — subsystem requirements
  • docs/design/test-results/io/io.md — subsystem design
  • test/DemaConsulting.TestResults.Tests/IO/IOTests.cs — subsystem test suite

IOTests.cs has been created as the IO subsystem test suite. It exercises the subsystem's public API (Serializer.Identify and Serializer.Deserialize) end-to-end for both TRX and JUnit formats, proving the subsystem works without diving into individual unit internals.

Unit review-sets (TestResults-IO-Serializer, TestResults-IO-TrxSerializer) have had TestHelpers.cs added since those units' test suites use it:

  • TestResults-IO-Serializer: added TestHelpers.cs (used by SerializerTests.cs)
  • TestResults-IO-TrxSerializer: added TestHelpers.cs (used by TrxExampleTests.cs)
  • TestResults-IO-JUnitSerializer: unchanged — JUnitSerializerTests.cs does not use TestHelpers.cs

Type of Change

  • Bug fix (non-breaking change which fixes an issue)
  • New feature (non-breaking change which adds functionality)
  • Breaking change (fix or feature that would cause existing functionality to not work as expected)
  • Documentation update
  • Code quality improvement

Related Issues

Pre-Submission Checklist

Before submitting this pull request, ensure you have completed the following:

Build and Test

  • Code builds successfully: dotnet build --configuration Release
  • All unit tests pass: dotnet test --configuration Release
  • Code produces zero warnings

Code Quality

  • Code formatting is correct: dotnet format --verify-no-changes
  • New code has appropriate XML documentation comments
  • Static analyzer warnings have been addressed

Quality Checks

Please run the following checks before submitting:

  • All linters pass: ./lint.sh (Unix/macOS) or cmd /c lint.bat / ./lint.bat (Windows)

Testing

  • Added unit tests for new functionality
  • Updated existing tests if behavior changed
  • All tests follow the AAA (Arrange, Act, Assert) pattern
  • Test coverage is maintained or improved

Documentation

  • Updated README.md (if applicable)
  • Updated ARCHITECTURE.md (if applicable)
  • Added code examples for new features (if applicable)
  • Updated requirements.yaml (if applicable)

Additional Notes

Changes to .reviewmark.yaml and the addition of IOTests.cs. No source library or documentation changes.

@Malcolmnixon
Copy link
Copy Markdown
Member

@copilot Hold on - the TestResults-IO review-set is ENORMOUS.

I gave you clear instructions on what's supposed to be in a review-set:

  • System-Architecture review-set MUST have ONLY [system-requirements, design-introduction, system-design, system-test-suite (IntegrationTests.cs, Runner.cs, AssemblyInfo.cs]
  • Subsystem review-sets MUST have ONLY [subsystem-requirements, subsystem-design, subsystem-test-suite]
  • Unit review-sets MUST have ONLY [unit-requirements, unit-design, unit-test-suite]

TestResults-IO is a subsystem so it's only supposed to have THREE items:

  • docs/reqstream/test-results/io/io.yaml - the subsystem requirements
  • docs/design/test-results/io/io.md - the subsystem design
  • test/DemaConsulting.TestResults.Tests/IO/IOTests.cs - the subsystem test suite (which I notice doesn't exist)

Every subsystem is supposed to have a test suite - a specific subsyste test-suite whose job is to have tests proving the subsystem works - that's separate from the unit test-suites - and those tests will end up utilizing one or more of the units and possibly having tests that look similar to unit tests, but that's how it's supposed to work.

A subsystem is supposed to be reviewable to show it works without having to dive in to all its units. This is a mitigation for agent LLM context windows.

Copy link
Copy Markdown
Contributor Author

Copilot AI commented Apr 3, 2026

@copilot Hold on - the TestResults-IO review-set is ENORMOUS.

I gave you clear instructions on what's supposed to be in a review-set:
...

Fixed in 6988e61. TestResults-IO now contains only the three subsystem-level items: io.yaml, io.md, and a new IOTests.cs. The subsystem test suite exercises the IO subsystem's public API (Serializer.Identify and Serializer.Deserialize) end-to-end for both TRX and JUnit formats.

Copilot AI changed the title Add TestHelpers.cs to unit review-sets that use it Fix TestResults-IO review-set structure and add IOTests.cs subsystem test suite Apr 3, 2026
Copilot AI requested a review from Malcolmnixon April 3, 2026 23:48
@Malcolmnixon Malcolmnixon marked this pull request as ready for review April 4, 2026 01:17
Copilot AI review requested due to automatic review settings April 4, 2026 01:17
Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

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

Pull request overview

Updates the repository’s ReviewMark configuration for the TestResults-IO subsystem to align review-set grouping with the intended subsystem/unit boundaries, and introduces a new end-to-end IO subsystem test suite.

Changes:

  • Trimmed TestResults-IO review-set to subsystem-level artifacts (reqs/design/test suite) and removed unit-level files from that subsystem review-set.
  • Added test/DemaConsulting.TestResults.Tests/IO/IOTests.cs as the IO subsystem end-to-end test suite (Identify + Deserialize for TRX and JUnit).
  • Added TestHelpers.cs into the relevant unit review-sets that depend on it.

Reviewed changes

Copilot reviewed 2 out of 2 changed files in this pull request and generated 1 comment.

File Description
test/DemaConsulting.TestResults.Tests/IO/IOTests.cs Adds subsystem-level end-to-end tests covering format identification and deserialization for TRX and JUnit.
.reviewmark.yaml Restructures TestResults-IO to subsystem scope and updates unit review-sets to include shared TestHelpers.cs where used.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread .reviewmark.yaml
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.

3 participants