NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
crates.io · #2857 most downloaded on crates.io
Snapshot testing toolbox
Last release 4 months ago
26 May 2026
Ships unpredictably
gaps range from 8 days to 10 months
Most releases are documented
notes for 51 of the last 60 stable releases
Nothing withdrawn
no release was ever pulled
5 years old
80 releases · first in 2022
One column per quarter.
chore: Release snapbox version 1.2.2
chore: Release snapbox version 1.2.2
chore: Release snapbox version 1.2.1
chore: Release snapbox version 1.2.1
chore: Release snapbox version 1.2.0
chore: Release snapbox version 1.2.0
Change cmd::cargo_bin bad paths to panics
cmd::cargo_bin bad paths to panicscmd::cargo_binscmd::cargo_bin_opt### Fixes - Un-deprecate cargo_bin
cargo_bin### Internal - Update dependencies
Nothing published for this version
Update fn cargo_bin() to use the upcoming runtime CARGO_BIN_EXE_*
fn cargo_bin() to use the upcoming runtime CARGO_BIN_EXE_*#[must_use] to Command::assert to ensure assertions are adeNothing published for this version
Allow additional nesting of extensions when inferring data formats from a path
### Features - In-source directory fixtures
Expose Redactions::clear_unused
Redactions::clear_unused### Fixes - Pull in escargot fix
escargot fixTake redactions into account when finding the end of an elided structured, unordered array
Take redactions into account when finding the end of an elided structured array
Nothing published for this version
### Features - Provide Assert::redactions
Assert::redactionsDeprecated IntoData::json in favor of IntoData::is_json
IntoData::json in favor of IntoData::is_jsonIntoData::json_lines in favor of IntoData::is_jsonlinesIntoData::term_svg in favor of IntoData::is_termsvgIntoData::against, with shortcuts for json and jsonlines, for different actual and expected formatsNothing published for this version
Nothing published for this version
str![]: fail, rather than panic, on divergent overlapping overwrites
str![]: fail, rather than panic, on divergent overlapping overwrites### Features - Expose Assert::normalize
Assert::normalizeAllow overwriting if Data::is fails
Data::is failsAdd data format helpers to IntoData
IntoDataAllow _ in redaction placeholder
_ in redaction placeholderDon't stop redacting on first mismatch
Don't stop .term.svg redactions just because the document widths are different
.term.svg redactions just because the document widths are differentdata.unordered() should be additive and not clear other filters
data.unordered() should be additive and not clear other filtersMake diff headers consistent line str's showing relative paths like file-backed expected
Deprecated Assert::substitutions in favor of Assert::redact_with
Assert::substitutions in favor of Assert::redact_withApply redactions to .term.svg files
.term.svg filesRemoved deprecated functionality
Breaking
str![[]] indent supportstr![[]]DataFormat future-proof... / [..] processing has been tweakedPath redactions)FilterRedactions into NormalizedToExpectedOther
eq_ fn's in favor of eqPath redactions...Deprecated filter::NormalizePaths in favor of filter::FilterPaths
filter::NormalizePaths in favor of filter::FilterPathsfilter::NormalizeNewlines in favor of filter::FilterNewlines### Documentation - Fix deprecation message
Deprecated Harness in favor of the tryfn crate
Harness in favor of the tryfn crateDeprecated Assert::eq(expected, actual) in favor of Assert::eq_(actual, expected.raw())
Assert::eq(expected, actual) in favor of Assert::eq_(actual, expected.raw())Assert::matches(expected, actual) in favor of Assert::eq_(actual, expected)OutputAssert::stdout_eq(expected, actual) in favor of OutputAssert::stdout_eq_(actual, expected.raw())OutputAssert::stdout_matches(expected, actual) in favor of OutputAssert::stdout_eq_(actual, expected)OutputAssert::stderr_eq(expected, actual) in favor of OutputAssert::stderr_eq_(actual, expected.raw())OutputAssert::stderr_matches(expected, actual) in favor of OutputAssert::stderr_eq_(actual, expected)data::Data::normalize in favor of filter::Filter::filterdata::Normalize::normalize in favor of filter::Filter::filterdata::NormalizeNewlines in favor of filter::NormalizeNewlinesdata::NormalizePaths in favor of filter::NormalizePathsdata::NormalizeMatches in favor of filter::FilterRedactionsdata::Substitutions in favor of filter::Redactionspath feature / mod in favor of dir feature / modpath::PathFixture in favor of dir::DirRootError in favor of assert::ErrorResult in favor of assert::ResultAction in favor of assert::ActionDEFAULT_ACTION_ENV in favor of assert::DEFAULT_ACTION_ENVutils::normalize_lines in favor of filter::normalize_linesutils::normalize_paths in favor of filter::normalize_pathsutils::normalize_textAssert::eq_(actual, expected)OutputAssert::stdout_eq_(actual, expected)OutputAssert::stderr_eq_(actual, expected)assert_data_eq!(actual, expected)prelude for easier access to IntoData, IntoJson, and ToDebugIntoData for easier data conversionsIntoJson for easier data conversionsData::raw to disable filters on expected valuesHarness::with_assert for greater customizationAssert::try_eq for non-panicking assertsAssert::selected_action to see whats chosenNothing published for this version
Don't strip on str![].indent(false) to work with lines with indentation
str![].indent(false) to work with lines with indentationMake auto-path snapshots more deterministic
Respect Assert::normalize_paths(false) when running subset_matches
Assert::normalize_paths(false) when running subset_matches*(term-svg)* Reduce noise in SVG snapshots
Nothing published for this version
Nothing published for this version
*(term-svg)* Correctly coerce "actual" to this type on when the snapshot doesn't yet exist
Add term-svg feature for snapshotting of terminal styling by ending files with .term.svg
term-svg feature for snapshotting of terminal styling by ending files with .term.svgFixed regression where you couldn't overwrite a snapshot that doesn't exist yet
_path assertions have been replaced by regular assertions accepting and updating Data::read_from / file![]
_path assertions have been replaced by regular assertions accepting and updating Data::read_from / file![]Data::try_coerce to Data::coerce_toDataFormat were moved to the data modstr![] macro for inline snapshots
coerce_to for specifying the structure of the snapshotfile!["<path-relative-to-rs>"] macro for test-relative snapshots
_ placeholder can be used for auto-generated file names: Json (see DataFormat) type ascriptions for specifying the structure of the snapshotToDebug extension trait for easier snapshot testing of debug outputpath::current_rs!() macro for an absolute path of std::fs::file!path::current_dir!() macro to get the absolute path to std::fs::file!path::cargo_rustc_current_dir() macro as a polyfill for the unstable CARGO_RUSTC_CURRENT_DIRNothing published for this version
### Internal - Update dependency
Actually match standard diff colors
### Fixes - Match standard diff colors
### Internal - Update anstream
anstreamImproved build-times by dropping the is-terminal dependency
is-terminal dependency### Internal - Dependency update
### Internal - Dependency update
Deprecated color-auto feature, its now automatic
color-auto feature, its now automatic### Internal - Update dependencies
### Internal - Reduce dependencies
Added examples feature to expose example-compilation functions in the cmd module
examples feature to expose example-compilation functions in the cmd module### Internal - Dependency updates
Your coding agent can read these notes before it upgrades. Set up the MCP server →