Attribute Macro async_entry::test
source · [−]#[test]
Expand description
Marks async function to be executed by runtime, suitable to test environment
Usage
Multi-thread runtime
#[async_entry::test(flavor = "multi_thread", worker_threads = 1)]
async fn my_test() {
assert!(true);
}
Using default
The default test runtime is single-threaded.
#[async_entry::test]
async fn my_test() {
assert!(true);
}
Configure the runtime to start with time paused
#[async_entry::test(start_paused = true)]
async fn my_test() {
assert!(true);
}
Note that start_paused
requires the test-util
feature to be enabled.
Add initialization statement
#[async_entry::test(init = "init_log!()")]
async fn my_test() {
assert!(true);
}
// Will produce:
//
// fn my_test() {
//
// let _g = init_log!(); // Add init statement
//
// let body = async { assert!(true); };
// let rt = ...
// rt.block_on(body);
// }
Add tracing span over the test fn
#[async_entry::test(tracing_span = "info")]
async fn my_test() {
assert!(true);
}
// Will produce:
//
// fn my_test() {
// let body = async { assert!(true); };
//
// use tracing_futures::Instrument; // Add tracing span
// let body_span = tracing::info_span("my_test"); //
// let body = body.instrument(body_span); //
//
// let rt = ...
// rt.block_on(body);
// }
NOTE:
If you rename the async_entry crate in your dependencies this macro will not work.