Skip to content

docs: correct the test-detection and namespace-stripping claims - #37

Merged
kieronlanning merged 2 commits into
mainfrom
docs/correct-test-detection-and-namespace-stripping
Oct 12, 2026
Merged

kieronlanning merged 2 commits into
mainfrom
docs/correct-test-detection-and-namespace-stripping

Conversation

@kieronlanning

Copy link
Copy Markdown
Contributor

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.

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
kieronlanning merged commit abbffad into main Oct 12, 2026
4 checks passed
@kieronlanning
kieronlanning deleted the docs/correct-test-detection-and-namespace-stripping branch October 12, 2026 10:32
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