.NET Verify Snapshot Testing
Manage Verify snapshot tests using the verify.tool dotnet local tool.
Discovery
To list all test files using Verify snapshots:
rg -l "Verifier\.Verify|UsesVerify|\.verified\." --type cs
To scope to a specific directory:
rg -l "Verifier\.Verify|UsesVerify|\.verified\." --type cs <path/to/test/directory>
Update Snapshots
To update snapshots after intentional code changes:
-
Build the solution:
dotnet build -p:WarningLevel=0 /clp:ErrorsOnly --verbosity minimal -
Run affected verify tests (they fail, generating
.received.files):dotnet test <test-project> --no-build --filter "FullyQualifiedName~<TestClass>" -v m -
Accept all new snapshots:
dotnet verify accept -yTo scope to a specific directory:
dotnet verify accept -y -w <path/to/test/directory> -
Re-run tests to confirm they pass:
dotnet test <test-project> --no-build --filter "FullyQualifiedName~<TestClass>" -v m
File Conventions
ClassName.MethodName.verified.txt— accepted snapshot (committed to git)ClassName.MethodName.received.txt— latest test output (not committed, gitignored)- Parameterized tests:
ClassName.MethodName_param=value.verified.txt
Quick Reference
| Command | Purpose |
|---|---|
| dotnet verify accept -y | Accept all pending snapshots |
| dotnet verify accept -y -w <dir> | Accept snapshots in specific directory |
| rg -l "Verifier\.Verify\|UsesVerify\|\.verified\." --type cs | List all test files using Verify |