-
Notifications
You must be signed in to change notification settings - Fork 0
Thanks
Eugene Tartakovsky edited this page May 17, 2026
·
1 revision
fixture3 stands on prior work. This page names what we drew from and what we depend on.
The fixture3 reduce command implements DDMin (Delta Debugging Minimization), originally described in:
- Andreas Zeller and Ralf Hildebrandt, Simplifying and Isolating Failure-Inducing Input, IEEE Transactions on Software Engineering, 28(2):183-200, 2002. Paper.
- Andreas Zeller, Why Programs Fail: A Guide to Systematic Debugging (Morgan Kaufmann).
Zeller's original work introduced DDMin as a generic algorithm for shrinking failure-inducing inputs to a minimal example. fixture3 applies it to approval-testing fixture trees: strip files and directory subtrees from a copied fixture tree while keeping the suite's approved output stable.
fixture3's core model - stable inputs, versioned approved outputs, fail-on-diff - is the same model used by:
- ApprovalTests — Llewellyn Falco's framework (with ports across .NET, Java, Python, JavaScript, and others). The original popularization of the approval-testing pattern. fixture3 adopts the same pattern with a different shape: manifest-driven configuration in YAML, external command runners that produce JSON, fixtures as separate first-class inputs.
-
insta — the dominant Rust snapshot library. Different model: snapshots live in or beside the test function, coupled to
cargo test. fixture3 separates fixture inputs from approved outputs and runs as an external CLI over any command that emits JSON. Both have a place; see the Comparison page for when to reach for which. - expect-test — simpler inline snapshots. Useful for small, locally-scoped expectations.
fixture3 is MIT-licensed. Every project listed above retains its own license; check the linked repositories for details.