datatest-stable
Data-driven tests that work on stable Rust
0.3.3
4.2M downloads/mo
#4899 most downloaded on crates.io
nextest-rs/datatest-stable
What this package is like to depend on
Last release 10 months ago
29 Sep 2025
Release timing varies
gaps range from 2 weeks to 1.1 years
Nearly every release is documented
notes for 18 of 18 stable releases
1 version withdrawn
withdrawn after publishing
5 years old
19 releases · first in 2021
1 release in the last 12 months
see the full history below
Release timeline
19 releases · Apr 2021 to Sep 2025Releases
latest 19-
0.3.329 Sep 2025Release notes
Open source →Fixed
Replaced obsolete
doc_auto_cfgwithdoc_cfg, to fix Rust nightly builds with thedoc_cfgflag enabled.Release notes
Open source →Fixed
Replaced obsolete
doc_auto_cfgwithdoc_cfg, to fix Rust nightly builds with thedoc_cfgflag enabled. -
0.3.229 Dec 2024Release notes
Open source →Added
patternis now optional in theharness!macro. If not specified, the default pattern is
r".*"(match all files).
Fixed
- Restored the ability to use absolute paths as the
rootargument.
Release notes
Open source →Added
patternis now optional in theharness!macro. If not specified, the default pattern isr".*"(match all files).
Fixed
- Restored the ability to use absolute paths as the
rootargument.
-
0.3.126 Dec 2024Release notes
Open source →Fixed
Fixed documentation for
include_dirinvocations. They must typically be called
viainclude_dir!("$CARGO_MANIFEST_DIR/path/to/data").Release notes
Open source →Fixed
Fixed documentation for
include_dirinvocations. They must typically be called viainclude_dir!("$CARGO_MANIFEST_DIR/path/to/data"). -
0.3.025 Dec 2024Release notes
Open source →Added
- Support for embedding data into the test binary via an optional
include-dir
feature. For more information and recommendations for when to use this, see the
readme.
Changed
-
The macro call format has changed to:
datatest_stable::harness! { { test = fn_name, path = &include_dir!("path/to/data"), pattern = r"^.*$" }, // ... }
This is both a nicer format for expressing multiple tests, and a signal to
indicate the other breaking changes in this release. -
Regex patterns now match against the path relative to the include directory, rather
than paths with respect to the crate root. This change was made for uniformity with the
include_dirimplementation. -
On Windows, paths are now universally normalized to use forward slashes. This change
was made to ensure that test names and paths are consistent across platforms.
Release notes
Open source →Added
- Support for embedding data into the test binary via an optional
include-dirfeature. For more information and recommendations for when to use this, see the readme.
Changed
-
The macro call format has changed to:
datatest_stable::harness! { { test = fn_name, path = &include_dir!("path/to/data"), pattern = r"^.*$" }, // ... }This is both a nicer format for expressing multiple tests, and a signal to indicate the other breaking changes in this release.
-
Regex patterns now match against the path relative to the include directory, rather than paths with respect to the crate root. This change was made for uniformity with the
include_dirimplementation. -
On Windows, paths are now universally normalized to use forward slashes. This change was made to ensure that test names and paths are consistent across platforms.
- Support for embedding data into the test binary via an optional
-
0.2.1008 Dec 2024Release notes
Open source →- Internal dependency updates: update
libtest-mimicto 0.8.1, andfancy-regexto 0.14.0. - Update MSRV to Rust 1.72.
Release notes
Open source →- Internal dependency updates: update
libtest-mimicto 0.8.1, andfancy-regexto 0.14.0. - Update MSRV to Rust 1.72.
- Internal dependency updates: update
-
0.2.926 Apr 2024Release notes
Open source →Added
Previously, the test functions supported were
fn(&Path) -> Result<()>andfn(&Utf8Path) -> Result<()>. This release adds additional supported functions:fn(&P, String) -> datatest_stable::Result<()>wherePisPathorUtf8Path. If the
extraStringparameter is specified, the contents of the file will be loaded and passed in
as a string (erroring out if that failed).fn(&P, Vec<u8>) -> datatest_stable::Result<()>wherePisPathorUtf8Path. If the
extraVec<u8>parameter is specified, the contents of the file will be
loaded and passed in as aVec<u8>(erroring out if that failed).
Release notes
Open source →Added
Previously, the test functions supported were
fn(&Path) -> Result<()>andfn(&Utf8Path) -> Result<()>. This release adds additional supported functions:fn(&P, String) -> datatest_stable::Result<()>wherePisPathorUtf8Path. If the extraStringparameter is specified, the contents of the file will be loaded and passed in as a string (erroring out if that failed).fn(&P, Vec<u8>) -> datatest_stable::Result<()>wherePisPathorUtf8Path. If the extraVec<u8>parameter is specified, the contents of the file will be loaded and passed in as aVec<u8>(erroring out if that failed).
-
0.2.825 Apr 2024Release notes
Open source →Fixed
- Fixed quadratic performance issue with nextest, where datatest-stable would iterate over the
entire list of files for each test. Thanks @zaneduffield for
your first contribution!
Release notes
Open source →Fixed
- Fixed quadratic performance issue with nextest, where datatest-stable would iterate over the entire list of files for each test. Thanks @zaneduffield for your first contribution!
- Fixed quadratic performance issue with nextest, where datatest-stable would iterate over the
-
0.2.721 Apr 2024Release notes
Open source →Changed
- Switched to the
fancy-regexcrate, which allows for matching against regexes with
lookahead/behind and backreferences. Thanks @webbdays for your
first contribution! - MSRV updated to Rust 1.66.
Release notes
Open source →Changed
-
Switched to the
fancy-regexcrate, which allows for matching against regexes with lookahead/behind and backreferences. Thanks @webbdays for your first contribution! -
MSRV updated to Rust 1.66.
- Switched to the
-
0.2.609 Apr 2024Release notes
Open source →- Update to
libtest-mimic 0.7.2, and use the upstream implementation ofExitCode.
Release notes
Open source →- Update to
libtest-mimic 0.7.2, and use the upstream implementation ofExitCode.
- Update to
-
0.2.509 Apr 2024Release notes
Open source →- Exit main via
ExitCoderather thanstd::process::exit(). This appears to fix coverage on
Windows.
Release notes
Open source →- Exit main via
ExitCoderather thanstd::process::exit(). This appears to fix coverage on Windows.
- Exit main via
-
0.2.409 Apr 2024Release notes
Open source →This is a periodic maintenance release.
- Update internal dependency versions, including libtest-mimic to 0.7.0.
- Update "docs (main)" link to the new location at https://datatest-stable.nexte.st.
- Update MSRV to Rust 1.65.
-
0.2.329 Aug 2023 -
0.2.229 Aug 2023Release notes
Open source →Added
- Restored compatibility with
fn(&Path) -> Result<()>. The harness now can take eitherfn(&Path) -> Result<()>orfn(&Utf8Path) -> Result<()>.
- Restored compatibility with
-
0.2.129 Aug 2023Release notes
Open source →Changed
- The test signature is now
fn(&Utf8Path)rather thanfn(&Path). If necessary, aUtf8Pathcan be converted to a&Pathwith.as_ref()or.as_std_path(). - Non-Unicode paths now consistently produce errors. Previously, the treatment of such paths was inconsistent -- they would either be skipped or produce errors.
- Internal dependency update: libtest-mimic updated to version 0.6.1.
- MSRV updated to Rust 1.60.
- The test signature is now
-
0.2.029 Aug 2023 -
0.1.315 Aug 2022Release notes
Open source →Changed
- Errors are now displayed with the
Debugimplementation, which prints out the full error chain with libraries likeanyhoworeyre, rather than theDisplayimplementation. Thanks Alex Badics for your first contribution! - MSRV updated to Rust 1.58.
Internal improvements
- datatest-stable now uses libtest-mimic 0.5.2. Thanks [Lukas Kalbertodt] (maintainer of libtest-mimic) for your first contribution!
- Errors are now displayed with the
-
0.1.222 May 2022Release notes
Open source →Changed
- New internal implementation, based on top of libtest-mimic.
- Repository updated to nextest-rs/datatest-stable.
- MSRV updated to Rust 1.56.
There are no functional changes in this release.
-
0.1.117 Apr 2021Release notes
Open source →Added
- Initial release with basic support for data-driven tests.
(Version 0.1.0 was yanked because of a metadata issue.)
-
0.1.017 Apr 2021 withdrawnNothing published for this version