Problem
Dummies targets netstandard2.0 and net8.0, but Dummies.UnitTests targets only net10.0.
A net10.0 test project resolves the closest compatible project asset, so the test suite primarily exercises the net8.0 build. Building both target frameworks proves compilation, but does not provide equivalent consumer-level coverage of the netstandard2.0 assembly that is shipped in the package.
Impact
A regression specific to the downlevel asset can reach NuGet even while the main test suite remains green. This is especially relevant for conditional compilation, API availability, numeric edge cases, random sampling and packaging metadata.
Direction
Add a small compatibility test strategy that consumes each packaged asset deliberately.
Possible approaches include separate smoke-test consumers, a build-and-run matrix with a target that can only select netstandard2.0, or packing the NuGet and validating its assets from isolated consumer projects. The solution should test the package as a consumer sees it rather than relying only on the project reference selected by net10.0.
Keep the full behavioral suite where it is useful; the compatibility layer can remain focused on representative public API and edge cases.
Acceptance criteria
- CI deliberately selects and validates the
netstandard2.0 asset.
- CI deliberately selects and validates the
net8.0 asset.
- Tests consume the packed package, or otherwise prove which asset is under test.
- Smoke coverage includes scalar generation, constraints, composition, collections and seeded reproducibility.
- Conditional
net8.0 APIs (DateOnly, TimeOnly, Int128, UInt128, Half) are verified as present only on the intended asset.
- A failure identifies the target asset that regressed.
Context
Surfaced during a focused review of the standalone Dummies library.
Problem
Dummiestargetsnetstandard2.0andnet8.0, butDummies.UnitTeststargets onlynet10.0.A
net10.0test project resolves the closest compatible project asset, so the test suite primarily exercises thenet8.0build. Building both target frameworks proves compilation, but does not provide equivalent consumer-level coverage of thenetstandard2.0assembly that is shipped in the package.Impact
A regression specific to the downlevel asset can reach NuGet even while the main test suite remains green. This is especially relevant for conditional compilation, API availability, numeric edge cases, random sampling and packaging metadata.
Direction
Add a small compatibility test strategy that consumes each packaged asset deliberately.
Possible approaches include separate smoke-test consumers, a build-and-run matrix with a target that can only select
netstandard2.0, or packing the NuGet and validating its assets from isolated consumer projects. The solution should test the package as a consumer sees it rather than relying only on the project reference selected bynet10.0.Keep the full behavioral suite where it is useful; the compatibility layer can remain focused on representative public API and edge cases.
Acceptance criteria
netstandard2.0asset.net8.0asset.net8.0APIs (DateOnly,TimeOnly,Int128,UInt128,Half) are verified as present only on the intended asset.Context
Surfaced during a focused review of the standalone
Dummieslibrary.