serial_test allows for the creation of serialised Rust tests using the serial attribute e.g.
#[test] #[serial] fn test_serial_one() { // Do things } #[test] #[serial] fn test_serial_another() { // Do things } #[tokio::test] #[serial] async fn test_serial_another() { // Do things asynchronously }
Multiple tests with the serial attribute are guaranteed to be executed in serial. Ordering of the tests is not guaranteed however.
We require at least Rust 1.39 for async/await support
Add to your Cargo.toml
[dev-dependencies] serial_test = "*"
plus use serial_test::serial; (for Rust 2018) or
#[macro_use] extern crate serial_test;
for earlier versions.
You can then either add #[serial] or #[serial(some_text)] to tests as required.