Repository navigation
docs: correct the test-detection and namespace-stripping claims - #37
Merged
kieronlanning merged 2 commits intoOct 12, 2026
Merged
Conversation
Four pages contradicted the SDK, and two of them contradicted each other. Namespace stripping listed the Roslyn component names as part of the built-in strip set, and its "keeping suffixes" example told readers to Remove SourceGenerators, CodeFixers and CodeFixes. The Configuration Reference said the opposite. Sdk.props settles it: the Roslyn names are deliberately absent, with a comment explaining why, so the example was a no-op and the paragraph built on it had the mechanism backwards. The example now removes a suffix that is actually in the list. Project Naming Conventions documented 23 recognised test suffixes as "the full list"; Project Type Detection documented 53. Sdk.props ships 53. Worse, neither list drives detection: TestingType comes from the regex ^.*\.([\w|_]\w*)Tests?$, so any word before Test/Tests is detected and categorised, and the TestType item group governs InternalsVisibleTo generation instead. Both pages now say that, and both name the real silent failure - a project named plainly UnitTests has no target before the dot, so it is not detected as a test project at all. Engineering Principles listed 17 of the broader suffixes. It now carries all of them, grouped by theme, including the ones that were missing entirely: Fuzz, Snapshot, Approval, Mutation, Property, Migration, Benchmark, Soak, Spike and the rest. The packaged .agents skills repeated the same stale 23-item list and framing, so they are corrected to match; an agent reading them was being given the contradiction verbatim. Also names Purview.Containers as the container-backed integration-test dependency in place of Testcontainers, which it wraps for the Docker backend, with the prerelease caveat stated.
kieronlanning
deleted the
docs/correct-test-detection-and-namespace-stripping
branch
October 12, 2026 10:32
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.
Four pages contradicted the SDK, and two of them contradicted each other.
Namespace stripping listed the Roslyn component names as part of the built-in strip set, and its "keeping suffixes" example told readers to Remove SourceGenerators, CodeFixers and CodeFixes. The Configuration Reference said the opposite. Sdk.props settles it: the Roslyn names are deliberately absent, with a comment explaining why, so the example was a no-op and the paragraph built on it had the mechanism backwards. The example now removes a suffix that is actually in the list.
Project Naming Conventions documented 23 recognised test suffixes as "the full list"; Project Type Detection documented 53. Sdk.props ships 53. Worse, neither list drives detection: TestingType comes from the regex ^..([\w|_]\w)Tests?$, so any word before Test/Tests is detected and categorised, and the TestType item group governs InternalsVisibleTo generation instead. Both pages now say that, and both name the real silent failure - a project named plainly UnitTests has no target before the dot, so it is not detected as a test project at all.
Engineering Principles listed 17 of the broader suffixes. It now carries all of them, grouped by theme, including the ones that were missing entirely: Fuzz, Snapshot, Approval, Mutation, Property, Migration, Benchmark, Soak, Spike and the rest.
The packaged .agents skills repeated the same stale 23-item list and framing, so they are corrected to match; an agent reading them was being given the contradiction verbatim.
Also names Purview.Containers as the container-backed integration-test dependency in place of Testcontainers, which it wraps for the Docker backend, with the prerelease caveat stated.