A .NET testing tool that automatically rewrites expected baselines in unit and integration tests by converting actual results into code.
Vendor
Scand
Storm Petrel Expected Baselines Rewriter is a .NET-based testing utility created to automate the maintenance of expected baselines in unit and integration tests. It addresses the common problem of test failures caused by legitimate code changes, such as new properties or corrected logic, which require frequent manual updates to expected values. The tool generates modified copies of existing tests using incremental source generation. These generated tests capture actual execution results, convert them into C# code, and overwrite the original expected baselines. Developers then review the changes to confirm correctness. The tool is designed to integrate into standard .NET testing workflows and focuses on reducing repetitive, error-prone manual updates.
Key Features
Automated Baseline Rewriting
Updates expected values based on real execution results.
- Captures actual baselines during test runs
- Rewrites expected baselines as C# code
Incremental Source Generation
Creates modified test copies automatically.
- Uses .NET incremental generators
- Generates isolated “StormPetrel” test versions
Framework Compatibility
Works with common .NET test frameworks.
- Supports XUnit
- Supports NUnit and MSTest
Flexible Baseline Configuration
Adapts to different test structures.
- Configurable actual and expected variable pairs
- Supports multiple baseline sets per test
Customizable Serialization Logic
Controls how baselines are generated.
- Pluggable baseline dumping algorithms
- Support for custom converters and serializers
Manual Review Support
Encourages controlled baseline updates.
- Automated changes are reviewable
- Designed to avoid silent test behavior changes
Benefits
Reduced Manual Test Maintenance
Minimizes repetitive developer effort.
- Eliminates hand-editing of expected values
- Fewer individual test reruns
Faster Test Stabilization
Speeds up recovery from legitimate test failures.
- Rapid baseline updates after code changes
- Shorter feedback loops during development
Improved Test Consistency
Ensures expected values match actual behavior.
- Baselines generated from real execution
- Lower risk of outdated expectations
Better Developer Productivity
Allows focus on logic instead of test upkeep.
- Less time spent fixing broken tests
- More predictable test maintenance process
Scalable for Large Test Suites
Handles complex and growing codebases.
- Suitable for large unit and integration test sets
- Consistent behavior across projects