🛶 Lean parametrized testing library for Rust
APACHE-2.0 License
const
, async
, unsafe
and extern
function qualifiers for test functions.Example
use yare::parameterized;
// NB: The underlying test macro also must support these qualifiers. For example, the default `#[test]` doesn't support async and unsafe.
#[parameterized(
purple = { &[128, 0, 128] },
orange = { &[255, 127, 0] },
)]
const extern "C" fn has_reds(streamed_color: &[u8]) {
assert!(streamed_color.first().is_some());
}
#[test_macro(...)]
, which replaces the default #[test]
attribute for a parameterized test.Example
use yare::parameterized;
#[parameterized(
zero_wait = { 0, 0 },
show_paused = { 500, 0 },
)]
#[test_macro(tokio::test(start_paused = true))]
async fn test(wait: u64, time_elapsed: u128) {
let start = std::time::Instant::now();
tokio::time::sleep(tokio::time::Duration::from_millis(wait)).await;
assert_eq!(time_elapsed, start.elapsed().as_millis());
}
Full Changelog: https://github.com/foresterre/yare/compare/v2.0.0...v3.0.0