use std::fs; use std::process::Command; #[test] fn cargo_readme_up_to_date() { println!("Checking that `cargo readme > README.md` is up to date..."); let expected = Command::new("cargo") .arg("readme") .current_dir(env!("CARGO_MANIFEST_DIR")) .output() .expect("should run `cargo readme` OK") .stdout; let expected = String::from_utf8_lossy(&expected); let actual = fs::read_to_string(concat!(env!("CARGO_MANIFEST_DIR"), "/README.md")) .expect("should read README.md OK"); if actual != expected { panic!("Run `cargo readme > README.md` to update README.md"); } }