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.