29 releases (stable)
Uses new Rust 2024
| 1.9.1 | Oct 18, 2025 |
|---|---|
| 1.8.0 | Feb 6, 2025 |
| 1.7.3 | Sep 8, 2024 |
| 1.7.1 | Apr 16, 2024 |
| 0.5.0 | Dec 4, 2016 |
#38 in Testing
56,975 downloads per month
Used in 58 crates
(32 directly)
14KB
194 lines
👑 Rust Goldenfile
Simple goldenfile testing in Rust.
Goldenfile tests generate one or more output files as they run. If any files differ from their checked-in "golden" version, the test fails. This ensures that behavioral changes are intentional, explicit, and version controlled.
You can use goldenfiles to test the output of a parser, the order of a graph traversal, the result of a simulation, or anything else that should only change with human review.
Usage
use goldenfile::Mint;
use std::io::Write;
let mut mint = Mint::new("tests/goldenfiles");
let mut file1 = mint.new_goldenfile("file1.txt").unwrap();
let mut file2 = mint.new_goldenfile("file2.txt").unwrap();
writeln!(file1, "Hello world!").unwrap();
writeln!(file2, "Foo bar!").unwrap();
When the Mint goes out of scope, it compares the contents of each file to its checked-in golden version and fails the test if they differ. To update the checked-in versions, run:
UPDATE_GOLDENFILES=1 cargo test
Contributing
Pull requests are welcome! This project follows the Rust community's Code of Conduct.
Dependencies
~2–14MB
~143K SLoC