[−][src]Macro version_sync::assert_contains_regex
Assert that versions numbers are up to date via a regex.
This macro allows you verify that the current version number is mentioned in a particular file, such as a changelog file. You do this by specifying a regular expression which will be matched against the file.
The macro calls check_contains_regex on the file name given.
The package name and current package version is automatically
taken from the $CARGO_PKG_NAME and $CARGO_PKG_VERSION
environment variables. These environment variables are
automatically set by Cargo when compiling your crate.
Usage
The typical way to use this macro is from an integration test:
#[macro_use] extern crate version_sync; #[test] fn test_readme_mentions_version() { assert_contains_regex!("README.md", "^### Version {version}"); }
Tests are run with the current directory set to directory where
your Cargo.toml file is, so this will find a README.md file
next to your Cargo.toml file. It will then check that there is a
heading mentioning the current version of your crate.
The regular expression can contain placeholders which are replaced before the regular expression search begins:
{version}: the current version number of your package.{name}: the name of your package.
This way you can search for things like "Latest version of {name} is: {version}" and make sure you update your READMEs and
changelogs consistently.
Panics
If the regular expression cannot be found, panic! will be
invoked and your integration test will fail.