diff --git a/crates/libtest2-mimic/tests/testsuite/mixed_bag.rs b/crates/libtest2-mimic/tests/testsuite/mixed_bag.rs index 1d1f7c9..8c451c8 100644 --- a/crates/libtest2-mimic/tests/testsuite/mixed_bag.rs +++ b/crates/libtest2-mimic/tests/testsuite/mixed_bag.rs @@ -35,6 +35,14 @@ fn main() { state.ignore_for("fails")?; Err(RunError::fail("no honey")) }), + Trial::test("sheep", |state| { + state.ignore()?; + Err(RunError::fail("got lost blindly following the flock")) + }), + Trial::test("horse", |state| { + state.ignore_for("slow")?; + Ok(()) + }), ]) .main(); } @@ -68,7 +76,7 @@ fn normal() { 101, str![[r#" -running 8 tests +running 10 tests test bear ... ignored test bunny ... ignored test cat ... ok @@ -76,7 +84,9 @@ test dog ... FAILED test fly ... ignored test fox ... ok test frog ... ignored +test horse ... ignored test owl ... ignored +test sheep ... ignored failures: @@ -87,13 +97,13 @@ was not a good boy failures: dog -test result: FAILED. 2 passed; 1 failed; 5 ignored; 0 filtered out; finished in [..]s +test result: FAILED. 2 passed; 1 failed; 7 ignored; 0 filtered out; finished in [..]s "#]], str![[r#" -running 8 tests +running 10 tests ... failures: @@ -105,7 +115,7 @@ was not a good boy failures: dog -test result: FAILED. 2 passed; 1 failed; 5 ignored; 0 filtered out; finished in [..]s +test result: FAILED. 2 passed; 1 failed; 7 ignored; 0 filtered out; finished in [..]s "#]], @@ -119,7 +129,7 @@ fn test_mode() { 101, str![[r#" -running 8 tests +running 10 tests test bear ... ignored test bunny ... ignored test cat ... ok @@ -127,7 +137,9 @@ test dog ... FAILED test fly ... ignored test fox ... ok test frog ... ignored +test horse ... ignored test owl ... ignored +test sheep ... ignored failures: @@ -138,13 +150,13 @@ was not a good boy failures: dog -test result: FAILED. 2 passed; 1 failed; 5 ignored; 0 filtered out; finished in [..]s +test result: FAILED. 2 passed; 1 failed; 7 ignored; 0 filtered out; finished in [..]s "#]], str![[r#" -running 8 tests +running 10 tests ... failures: @@ -156,7 +168,7 @@ was not a good boy failures: dog -test result: FAILED. 2 passed; 1 failed; 5 ignored; 0 filtered out; finished in [..]s +test result: FAILED. 2 passed; 1 failed; 7 ignored; 0 filtered out; finished in [..]s "#]], @@ -170,7 +182,7 @@ fn bench_mode() { 101, str![[r#" -running 8 tests +running 10 tests test bear ... ignored test bunny ... ignored test cat ... ok @@ -178,7 +190,9 @@ test dog ... FAILED test fly ... ignored test fox ... ok test frog ... ignored +test horse ... ignored test owl ... ignored +test sheep ... ignored failures: @@ -189,13 +203,13 @@ was not a good boy failures: dog -test result: FAILED. 2 passed; 1 failed; 5 ignored; 0 filtered out; finished in [..]s +test result: FAILED. 2 passed; 1 failed; 7 ignored; 0 filtered out; finished in [..]s "#]], str![[r#" -running 8 tests +running 10 tests ... failures: @@ -207,7 +221,7 @@ was not a good boy failures: dog -test result: FAILED. 2 passed; 1 failed; 5 ignored; 0 filtered out; finished in [..]s +test result: FAILED. 2 passed; 1 failed; 7 ignored; 0 filtered out; finished in [..]s "#]], @@ -228,8 +242,10 @@ frog: test owl: test fly: test bear: test +sheep: test +horse: test -8 tests +10 tests "#]], @@ -242,8 +258,10 @@ frog: test owl: test fly: test bear: test +sheep: test +horse: test -8 tests +10 tests "#]], @@ -264,8 +282,10 @@ frog: test owl: test fly: test bear: test +sheep: test +horse: test -8 tests +10 tests "#]], @@ -278,8 +298,10 @@ frog: test owl: test fly: test bear: test +sheep: test +horse: test -8 tests +10 tests "#]], @@ -349,7 +371,7 @@ running 2 tests test bear ... ignored test cat ... ok -test result: ok. 1 passed; 0 failed; 1 ignored; 6 filtered out; finished in [..]s +test result: ok. 1 passed; 0 failed; 1 ignored; 8 filtered out; finished in [..]s "#]], @@ -358,7 +380,7 @@ test result: ok. 1 passed; 0 failed; 1 ignored; 6 filtered out; finished in [..] running 2 tests ... -test result: ok. 1 passed; 0 failed; 1 ignored; 6 filtered out; finished in [..]s +test result: ok. 1 passed; 0 failed; 1 ignored; 8 filtered out; finished in [..]s "#]], @@ -376,7 +398,7 @@ running 2 tests test bear ... ignored test cat ... ok -test result: ok. 1 passed; 0 failed; 1 ignored; 6 filtered out; finished in [..]s +test result: ok. 1 passed; 0 failed; 1 ignored; 8 filtered out; finished in [..]s "#]], @@ -385,7 +407,7 @@ test result: ok. 1 passed; 0 failed; 1 ignored; 6 filtered out; finished in [..] running 2 tests ... -test result: ok. 1 passed; 0 failed; 1 ignored; 6 filtered out; finished in [..]s +test result: ok. 1 passed; 0 failed; 1 ignored; 8 filtered out; finished in [..]s "#]], @@ -399,11 +421,12 @@ fn filter_o_test_include_ignored() { 101, str![[r#" -running 4 tests -test dog ... FAILED -test fox ... ok -test frog ... ok -test owl ... FAILED +running 5 tests +test dog ... FAILED +test fox ... ok +test frog ... ok +test horse ... ok +test owl ... FAILED failures: @@ -418,13 +441,13 @@ failures: dog owl -test result: FAILED. 2 passed; 2 failed; 0 ignored; 4 filtered out; finished in [..]s +test result: FAILED. 3 passed; 2 failed; 0 ignored; 5 filtered out; finished in [..]s "#]], str![[r#" -running 4 tests +running 5 tests ... failures: @@ -440,7 +463,7 @@ failures: dog owl -test result: FAILED. 2 passed; 2 failed; 0 ignored; 4 filtered out; finished in [..]s +test result: FAILED. 3 passed; 2 failed; 0 ignored; 5 filtered out; finished in [..]s "#]], @@ -454,11 +477,12 @@ fn filter_o_test_ignored() { 101, str![[r#" -running 4 tests -test dog ... FAILED -test fox ... ok -test frog ... ok -test owl ... FAILED +running 5 tests +test dog ... FAILED +test fox ... ok +test frog ... ok +test horse ... ok +test owl ... FAILED failures: @@ -473,13 +497,13 @@ failures: dog owl -test result: FAILED. 2 passed; 2 failed; 0 ignored; 4 filtered out; finished in [..]s +test result: FAILED. 3 passed; 2 failed; 0 ignored; 5 filtered out; finished in [..]s "#]], str![[r#" -running 4 tests +running 5 tests ... failures: @@ -495,7 +519,7 @@ failures: dog owl -test result: FAILED. 2 passed; 2 failed; 0 ignored; 4 filtered out; finished in [..]s +test result: FAILED. 3 passed; 2 failed; 0 ignored; 5 filtered out; finished in [..]s "#]], @@ -509,7 +533,7 @@ fn normal_include_ignored() { 101, str![[r#" -running 8 tests +running 10 tests test bear ... FAILED test bunny ... FAILED test cat ... ok @@ -517,7 +541,9 @@ test dog ... FAILED test fly ... ok test fox ... ok test frog ... ok +test horse ... ok test owl ... FAILED +test sheep ... FAILED failures: @@ -533,20 +559,24 @@ was not a good boy ---- owl ---- broke neck +---- sheep ---- +got lost blindly following the flock + failures: bear bunny dog owl + sheep -test result: FAILED. 4 passed; 4 failed; 0 ignored; 0 filtered out; finished in [..]s +test result: FAILED. 5 passed; 5 failed; 0 ignored; 0 filtered out; finished in [..]s "#]], str![[r#" -running 8 tests +running 10 tests ... failures: @@ -563,14 +593,18 @@ was not a good boy ---- owl ---- broke neck +---- sheep ---- +got lost blindly following the flock + failures: bear bunny dog owl + sheep -test result: FAILED. 4 passed; 4 failed; 0 ignored; 0 filtered out; finished in [..]s +test result: FAILED. 5 passed; 5 failed; 0 ignored; 0 filtered out; finished in [..]s "#]], @@ -584,7 +618,7 @@ fn normal_ignored() { 101, str![[r#" -running 8 tests +running 10 tests test bear ... FAILED test bunny ... FAILED test cat ... ok @@ -592,7 +626,9 @@ test dog ... FAILED test fly ... ok test fox ... ok test frog ... ok +test horse ... ok test owl ... FAILED +test sheep ... FAILED failures: @@ -608,20 +644,24 @@ was not a good boy ---- owl ---- broke neck +---- sheep ---- +got lost blindly following the flock + failures: bear bunny dog owl + sheep -test result: FAILED. 4 passed; 4 failed; 0 ignored; 0 filtered out; finished in [..]s +test result: FAILED. 5 passed; 5 failed; 0 ignored; 0 filtered out; finished in [..]s "#]], str![[r#" -running 8 tests +running 10 tests ... failures: @@ -638,14 +678,18 @@ was not a good boy ---- owl ---- broke neck +---- sheep ---- +got lost blindly following the flock + failures: bear bunny dog owl + sheep -test result: FAILED. 4 passed; 4 failed; 0 ignored; 0 filtered out; finished in [..]s +test result: FAILED. 5 passed; 5 failed; 0 ignored; 0 filtered out; finished in [..]s "#]], @@ -659,9 +703,10 @@ fn lots_of_flags() { 101, str![[r#" -running 2 tests -test fox ... ok -test owl ... FAILED +running 3 tests +test fox ... ok +test horse ... ok +test owl ... FAILED failures: @@ -672,13 +717,13 @@ broke neck failures: owl -test result: FAILED. 1 passed; 1 failed; 0 ignored; 6 filtered out; finished in [..]s +test result: FAILED. 2 passed; 1 failed; 0 ignored; 7 filtered out; finished in [..]s "#]], str![[r#" -running 2 tests +running 3 tests ... failures: @@ -690,7 +735,7 @@ broke neck failures: owl -test result: FAILED. 1 passed; 1 failed; 0 ignored; 6 filtered out; finished in [..]s +test result: FAILED. 2 passed; 1 failed; 0 ignored; 7 filtered out; finished in [..]s "#]], @@ -754,6 +799,18 @@ fn list_json() { "event": "discover_case", "name": "bear" }, + { + "elapsed_s": "[..]", + "event": "discover_case", + "name": "sheep", + "selected": false + }, + { + "elapsed_s": "[..]", + "event": "discover_case", + "name": "horse", + "selected": false + }, { "elapsed_s": "[..]", "event": "discover_complete" @@ -814,6 +871,18 @@ fn list_json() { "event": "discover_case", "name": "bear" }, + { + "elapsed_s": "[..]", + "event": "discover_case", + "name": "sheep", + "selected": false + }, + { + "elapsed_s": "[..]", + "event": "discover_case", + "name": "horse", + "selected": false + }, { "elapsed_s": "[..]", "event": "discover_complete" @@ -882,6 +951,18 @@ fn test_json() { "event": "discover_case", "name": "bear" }, + { + "elapsed_s": "[..]", + "event": "discover_case", + "name": "sheep", + "selected": false + }, + { + "elapsed_s": "[..]", + "event": "discover_case", + "name": "horse", + "selected": false + }, { "elapsed_s": "[..]", "event": "discover_complete" @@ -961,60 +1042,72 @@ fn test_json() { "name": "cat" }, { - "event": "run_start", - "elapsed_s": "[..]" + "elapsed_s": "[..]", + "event": "run_start" }, { - "event": "run_complete", - "elapsed_s": "[..]" + "elapsed_s": "[..]", + "event": "run_complete" }, { + "elapsed_s": "[..]", "event": "discover_case", "name": "bunny", - "selected": false, - "elapsed_s": "[..]" + "selected": false }, { + "elapsed_s": "[..]", "event": "discover_case", "name": "dog", - "selected": false, - "elapsed_s": "[..]" + "selected": false }, { + "elapsed_s": "[..]", "event": "discover_case", "name": "fly", - "selected": false, - "elapsed_s": "[..]" + "selected": false }, { + "elapsed_s": "[..]", "event": "discover_case", "name": "fox", - "selected": false, - "elapsed_s": "[..]" + "selected": false }, { + "elapsed_s": "[..]", "event": "discover_case", "name": "frog", - "selected": false, - "elapsed_s": "[..]" + "selected": false }, { + "elapsed_s": "[..]", "event": "discover_case", "name": "owl", - "selected": false, - "elapsed_s": "[..]" + "selected": false }, { + "elapsed_s": "[..]", "event": "case_complete", - "name": "bear", - "elapsed_s": "[..]" + "name": "bear" }, { + "elapsed_s": "[..]", "event": "case_message", - "name": "bear", "kind": "ignored", "message": "fails", - "elapsed_s": "[..]" + "name": "bear" + }, + { + "elapsed_s": "[..]", + "event": "discover_case", + "name": "sheep", + "selected": false + }, + { + "elapsed_s": "[..]", + "event": "discover_case", + "name": "horse", + "selected": false } ] "#]] @@ -1031,8 +1124,8 @@ fn terse_output() { 101, str![[r#" -running 8 tests -ii.Fi.ii +running 10 tests +ii.Fi.iiii failures: ---- dog ---- @@ -1042,13 +1135,13 @@ was not a good boy failures: dog -test result: FAILED. 2 passed; 1 failed; 5 ignored; 0 filtered out; finished in [..]s +test result: FAILED. 2 passed; 1 failed; 7 ignored; 0 filtered out; finished in [..]s "#]], str![[r#" -running 8 tests +running 10 tests ... failures: @@ -1059,7 +1152,7 @@ was not a good boy failures: dog -test result: FAILED. 2 passed; 1 failed; 5 ignored; 0 filtered out; finished in [..]s +test result: FAILED. 2 passed; 1 failed; 7 ignored; 0 filtered out; finished in [..]s "#]], @@ -1073,7 +1166,7 @@ fn fail_fast() { 101, str![[r#" -running 8 tests +running 10 tests test bear ... ignored test bunny ... ignored test cat ... ok @@ -1150,6 +1243,16 @@ fn fail_fast_json() { "event": "discover_case", "name": "bear" }, + { + "elapsed_s": "[..]", + "event": "discover_case", + "name": "sheep" + }, + { + "elapsed_s": "[..]", + "event": "discover_case", + "name": "horse" + }, { "elapsed_s": "[..]", "event": "discover_complete" diff --git a/crates/libtest2/src/lib.rs b/crates/libtest2/src/lib.rs index 61f5d17..a47f3f3 100644 --- a/crates/libtest2/src/lib.rs +++ b/crates/libtest2/src/lib.rs @@ -44,6 +44,7 @@ pub mod _private { pub use libtest2_harness::TestKind; pub use crate::_main_parse as main_parse; + pub use crate::_parse_ignore as parse_ignore; pub use crate::_test_parse as test_parse; pub use crate::case::DynCase; } diff --git a/crates/libtest2/src/macros.rs b/crates/libtest2/src/macros.rs index 6113b33..3ee0929 100644 --- a/crates/libtest2/src/macros.rs +++ b/crates/libtest2/src/macros.rs @@ -12,10 +12,23 @@ macro_rules! _main_parse { }; } +#[macro_export] +macro_rules! _parse_ignore { + (ignore) => { + ::std::option::Option::<&'static str>::None + }; + (ignore = $reason:expr) => { + ::std::option::Option::<&'static str>::Some($reason) + }; + ($($attr:tt)*) => { + compile_error!(concat!("unknown attribute '", stringify!($($attr)*), "'")); + }; +} + #[macro_export] #[allow(clippy::crate_in_macro_def)] // accessing item defined by `_main_parse` macro_rules! _test_parse { - (#[test] fn $name:ident $($item:tt)*) => { + (#[test] $(#[$($attr:tt)*])* fn $name:ident $($item:tt)*) => { #[allow(non_camel_case_types)] struct $name; @@ -38,6 +51,13 @@ macro_rules! _test_parse { fn run(&self, context: &$crate::TestContext) -> $crate::RunResult { fn run $($item)* + $( + match $crate::_private::parse_ignore!($($attr)*) { + ::std::option::Option::None => context.ignore()?, + ::std::option::Option::Some(reason) => context.ignore_for(reason)?, + } + )* + run(context) } } diff --git a/crates/libtest2/tests/testsuite/mixed_bag.rs b/crates/libtest2/tests/testsuite/mixed_bag.rs index 26fa68a..4ee8a11 100644 --- a/crates/libtest2/tests/testsuite/mixed_bag.rs +++ b/crates/libtest2/tests/testsuite/mixed_bag.rs @@ -50,10 +50,22 @@ fn fly(context: &libtest2::TestContext) -> libtest2::RunResult { } #[libtest2::test] +#[ignore = "fails"] fn bear(context: &libtest2::TestContext) -> libtest2::RunResult { - context.ignore_for("fails")?; Err(libtest2::RunError::fail("no honey")) } + +#[libtest2::test] +#[ignore] +fn sheep(context: &libtest2::TestContext) -> libtest2::RunResult { + Err(libtest2::RunError::fail("got lost blindly following the flock")) +} + +#[libtest2::test] +#[ignore = "slow"] +fn horse(context: &libtest2::TestContext) -> libtest2::RunResult { + Ok(()) +} "#, false, ); @@ -84,7 +96,7 @@ fn normal() { 101, str![[r#" -running 8 tests +running 10 tests test bear ... ignored test bunny ... ignored test cat ... ok @@ -92,7 +104,9 @@ test dog ... FAILED test fly ... ignored test fox ... ok test frog ... ignored +test horse ... ignored test owl ... ignored +test sheep ... ignored failures: @@ -103,13 +117,13 @@ was not a good boy failures: dog -test result: FAILED. 2 passed; 1 failed; 5 ignored; 0 filtered out; finished in [..]s +test result: FAILED. 2 passed; 1 failed; 7 ignored; 0 filtered out; finished in [..]s "#]], str![[r#" -running 8 tests +running 10 tests ... failures: @@ -121,7 +135,7 @@ was not a good boy failures: dog -test result: FAILED. 2 passed; 1 failed; 5 ignored; 0 filtered out; finished in [..]s +test result: FAILED. 2 passed; 1 failed; 7 ignored; 0 filtered out; finished in [..]s "#]], @@ -135,7 +149,7 @@ fn test_mode() { 101, str![[r#" -running 8 tests +running 10 tests test bear ... ignored test bunny ... ignored test cat ... ok @@ -143,7 +157,9 @@ test dog ... FAILED test fly ... ignored test fox ... ok test frog ... ignored +test horse ... ignored test owl ... ignored +test sheep ... ignored failures: @@ -154,13 +170,13 @@ was not a good boy failures: dog -test result: FAILED. 2 passed; 1 failed; 5 ignored; 0 filtered out; finished in [..]s +test result: FAILED. 2 passed; 1 failed; 7 ignored; 0 filtered out; finished in [..]s "#]], str![[r#" -running 8 tests +running 10 tests ... failures: @@ -172,7 +188,7 @@ was not a good boy failures: dog -test result: FAILED. 2 passed; 1 failed; 5 ignored; 0 filtered out; finished in [..]s +test result: FAILED. 2 passed; 1 failed; 7 ignored; 0 filtered out; finished in [..]s "#]], @@ -186,7 +202,7 @@ fn bench_mode() { 101, str![[r#" -running 8 tests +running 10 tests test bear ... ignored test bunny ... ignored test cat ... ok @@ -194,7 +210,9 @@ test dog ... FAILED test fly ... ignored test fox ... ok test frog ... ignored +test horse ... ignored test owl ... ignored +test sheep ... ignored failures: @@ -205,13 +223,13 @@ was not a good boy failures: dog -test result: FAILED. 2 passed; 1 failed; 5 ignored; 0 filtered out; finished in [..]s +test result: FAILED. 2 passed; 1 failed; 7 ignored; 0 filtered out; finished in [..]s "#]], str![[r#" -running 8 tests +running 10 tests ... failures: @@ -223,7 +241,7 @@ was not a good boy failures: dog -test result: FAILED. 2 passed; 1 failed; 5 ignored; 0 filtered out; finished in [..]s +test result: FAILED. 2 passed; 1 failed; 7 ignored; 0 filtered out; finished in [..]s "#]], @@ -243,9 +261,11 @@ dog: test fly: test fox: test frog: test +horse: test owl: test +sheep: test -8 tests +10 tests "#]], @@ -257,9 +277,11 @@ dog: test fly: test fox: test frog: test +horse: test owl: test +sheep: test -8 tests +10 tests "#]], @@ -279,9 +301,11 @@ dog: test fly: test fox: test frog: test +horse: test owl: test +sheep: test -8 tests +10 tests "#]], @@ -293,9 +317,11 @@ dog: test fly: test fox: test frog: test +horse: test owl: test +sheep: test -8 tests +10 tests "#]], @@ -365,7 +391,7 @@ running 2 tests test bear ... ignored test cat ... ok -test result: ok. 1 passed; 0 failed; 1 ignored; 6 filtered out; finished in [..]s +test result: ok. 1 passed; 0 failed; 1 ignored; 8 filtered out; finished in [..]s "#]], @@ -374,7 +400,7 @@ test result: ok. 1 passed; 0 failed; 1 ignored; 6 filtered out; finished in [..] running 2 tests ... -test result: ok. 1 passed; 0 failed; 1 ignored; 6 filtered out; finished in [..]s +test result: ok. 1 passed; 0 failed; 1 ignored; 8 filtered out; finished in [..]s "#]], @@ -392,7 +418,7 @@ running 2 tests test bear ... ignored test cat ... ok -test result: ok. 1 passed; 0 failed; 1 ignored; 6 filtered out; finished in [..]s +test result: ok. 1 passed; 0 failed; 1 ignored; 8 filtered out; finished in [..]s "#]], @@ -401,7 +427,7 @@ test result: ok. 1 passed; 0 failed; 1 ignored; 6 filtered out; finished in [..] running 2 tests ... -test result: ok. 1 passed; 0 failed; 1 ignored; 6 filtered out; finished in [..]s +test result: ok. 1 passed; 0 failed; 1 ignored; 8 filtered out; finished in [..]s "#]], @@ -415,11 +441,12 @@ fn filter_o_test_include_ignored() { 101, str![[r#" -running 4 tests -test dog ... FAILED -test fox ... ok -test frog ... ok -test owl ... FAILED +running 5 tests +test dog ... FAILED +test fox ... ok +test frog ... ok +test horse ... ok +test owl ... FAILED failures: @@ -434,13 +461,13 @@ failures: dog owl -test result: FAILED. 2 passed; 2 failed; 0 ignored; 4 filtered out; finished in [..]s +test result: FAILED. 3 passed; 2 failed; 0 ignored; 5 filtered out; finished in [..]s "#]], str![[r#" -running 4 tests +running 5 tests ... failures: @@ -456,7 +483,7 @@ failures: dog owl -test result: FAILED. 2 passed; 2 failed; 0 ignored; 4 filtered out; finished in [..]s +test result: FAILED. 3 passed; 2 failed; 0 ignored; 5 filtered out; finished in [..]s "#]], @@ -470,11 +497,12 @@ fn filter_o_test_ignored() { 101, str![[r#" -running 4 tests -test dog ... FAILED -test fox ... ok -test frog ... ok -test owl ... FAILED +running 5 tests +test dog ... FAILED +test fox ... ok +test frog ... ok +test horse ... ok +test owl ... FAILED failures: @@ -489,13 +517,13 @@ failures: dog owl -test result: FAILED. 2 passed; 2 failed; 0 ignored; 4 filtered out; finished in [..]s +test result: FAILED. 3 passed; 2 failed; 0 ignored; 5 filtered out; finished in [..]s "#]], str![[r#" -running 4 tests +running 5 tests ... failures: @@ -511,7 +539,7 @@ failures: dog owl -test result: FAILED. 2 passed; 2 failed; 0 ignored; 4 filtered out; finished in [..]s +test result: FAILED. 3 passed; 2 failed; 0 ignored; 5 filtered out; finished in [..]s "#]], @@ -525,7 +553,7 @@ fn normal_include_ignored() { 101, str![[r#" -running 8 tests +running 10 tests test bear ... FAILED test bunny ... FAILED test cat ... ok @@ -533,7 +561,9 @@ test dog ... FAILED test fly ... ok test fox ... ok test frog ... ok +test horse ... ok test owl ... FAILED +test sheep ... FAILED failures: @@ -549,20 +579,24 @@ was not a good boy ---- owl ---- broke neck +---- sheep ---- +got lost blindly following the flock + failures: bear bunny dog owl + sheep -test result: FAILED. 4 passed; 4 failed; 0 ignored; 0 filtered out; finished in [..]s +test result: FAILED. 5 passed; 5 failed; 0 ignored; 0 filtered out; finished in [..]s "#]], str![[r#" -running 8 tests +running 10 tests ... failures: @@ -579,14 +613,18 @@ was not a good boy ---- owl ---- broke neck +---- sheep ---- +got lost blindly following the flock + failures: bear bunny dog owl + sheep -test result: FAILED. 4 passed; 4 failed; 0 ignored; 0 filtered out; finished in [..]s +test result: FAILED. 5 passed; 5 failed; 0 ignored; 0 filtered out; finished in [..]s "#]], @@ -600,7 +638,7 @@ fn normal_ignored() { 101, str![[r#" -running 8 tests +running 10 tests test bear ... FAILED test bunny ... FAILED test cat ... ok @@ -608,7 +646,9 @@ test dog ... FAILED test fly ... ok test fox ... ok test frog ... ok +test horse ... ok test owl ... FAILED +test sheep ... FAILED failures: @@ -624,20 +664,24 @@ was not a good boy ---- owl ---- broke neck +---- sheep ---- +got lost blindly following the flock + failures: bear bunny dog owl + sheep -test result: FAILED. 4 passed; 4 failed; 0 ignored; 0 filtered out; finished in [..]s +test result: FAILED. 5 passed; 5 failed; 0 ignored; 0 filtered out; finished in [..]s "#]], str![[r#" -running 8 tests +running 10 tests ... failures: @@ -654,14 +698,18 @@ was not a good boy ---- owl ---- broke neck +---- sheep ---- +got lost blindly following the flock + failures: bear bunny dog owl + sheep -test result: FAILED. 4 passed; 4 failed; 0 ignored; 0 filtered out; finished in [..]s +test result: FAILED. 5 passed; 5 failed; 0 ignored; 0 filtered out; finished in [..]s "#]], @@ -675,9 +723,10 @@ fn lots_of_flags() { 101, str![[r#" -running 2 tests -test fox ... ok -test owl ... FAILED +running 3 tests +test fox ... ok +test horse ... ok +test owl ... FAILED failures: @@ -688,13 +737,13 @@ broke neck failures: owl -test result: FAILED. 1 passed; 1 failed; 0 ignored; 6 filtered out; finished in [..]s +test result: FAILED. 2 passed; 1 failed; 0 ignored; 7 filtered out; finished in [..]s "#]], str![[r#" -running 2 tests +running 3 tests ... failures: @@ -706,7 +755,7 @@ broke neck failures: owl -test result: FAILED. 1 passed; 1 failed; 0 ignored; 6 filtered out; finished in [..]s +test result: FAILED. 2 passed; 1 failed; 0 ignored; 7 filtered out; finished in [..]s "#]], @@ -764,12 +813,24 @@ fn list_json() { "name": "frog", "selected": false }, + { + "elapsed_s": "[..]", + "event": "discover_case", + "name": "horse", + "selected": false + }, { "elapsed_s": "[..]", "event": "discover_case", "name": "owl", "selected": false }, + { + "elapsed_s": "[..]", + "event": "discover_case", + "name": "sheep", + "selected": false + }, { "elapsed_s": "[..]", "event": "discover_complete" @@ -824,12 +885,24 @@ fn list_json() { "name": "frog", "selected": false }, + { + "elapsed_s": "[..]", + "event": "discover_case", + "name": "horse", + "selected": false + }, { "elapsed_s": "[..]", "event": "discover_case", "name": "owl", "selected": false }, + { + "elapsed_s": "[..]", + "event": "discover_case", + "name": "sheep", + "selected": false + }, { "elapsed_s": "[..]", "event": "discover_complete" @@ -892,12 +965,24 @@ fn test_json() { "name": "frog", "selected": false }, + { + "elapsed_s": "[..]", + "event": "discover_case", + "name": "horse", + "selected": false + }, { "elapsed_s": "[..]", "event": "discover_case", "name": "owl", "selected": false }, + { + "elapsed_s": "[..]", + "event": "discover_case", + "name": "sheep", + "selected": false + }, { "elapsed_s": "[..]", "event": "discover_complete" @@ -977,60 +1062,72 @@ fn test_json() { "name": "bear" }, { - "event": "run_start", - "elapsed_s": "[..]" + "elapsed_s": "[..]", + "event": "run_start" }, { - "event": "run_complete", - "elapsed_s": "[..]" + "elapsed_s": "[..]", + "event": "run_complete" }, { + "elapsed_s": "[..]", "event": "discover_case", "name": "bunny", - "selected": false, - "elapsed_s": "[..]" + "selected": false }, { + "elapsed_s": "[..]", "event": "discover_case", "name": "dog", - "selected": false, - "elapsed_s": "[..]" + "selected": false }, { + "elapsed_s": "[..]", "event": "discover_case", "name": "fly", - "selected": false, - "elapsed_s": "[..]" + "selected": false }, { + "elapsed_s": "[..]", "event": "discover_case", "name": "fox", - "selected": false, - "elapsed_s": "[..]" + "selected": false }, { + "elapsed_s": "[..]", "event": "discover_case", "name": "frog", - "selected": false, - "elapsed_s": "[..]" + "selected": false }, { + "elapsed_s": "[..]", "event": "discover_case", "name": "owl", - "selected": false, - "elapsed_s": "[..]" + "selected": false }, { + "elapsed_s": "[..]", "event": "case_complete", - "name": "bear", - "elapsed_s": "[..]" + "name": "bear" }, { + "elapsed_s": "[..]", "event": "case_message", - "name": "bear", "kind": "ignored", "message": "fails", - "elapsed_s": "[..]" + "name": "bear" + }, + { + "elapsed_s": "[..]", + "event": "discover_case", + "name": "horse", + "selected": false + }, + { + "elapsed_s": "[..]", + "event": "discover_case", + "name": "sheep", + "selected": false } ] "#]] @@ -1047,8 +1144,8 @@ fn terse_output() { 101, str![[r#" -running 8 tests -ii.Fi.ii +running 10 tests +ii.Fi.iiii failures: ---- dog ---- @@ -1058,13 +1155,13 @@ was not a good boy failures: dog -test result: FAILED. 2 passed; 1 failed; 5 ignored; 0 filtered out; finished in [..]s +test result: FAILED. 2 passed; 1 failed; 7 ignored; 0 filtered out; finished in [..]s "#]], str![[r#" -running 8 tests +running 10 tests ... failures: @@ -1075,7 +1172,7 @@ was not a good boy failures: dog -test result: FAILED. 2 passed; 1 failed; 5 ignored; 0 filtered out; finished in [..]s +test result: FAILED. 2 passed; 1 failed; 7 ignored; 0 filtered out; finished in [..]s "#]], @@ -1089,7 +1186,7 @@ fn fail_fast() { 101, str![[r#" -running 8 tests +running 10 tests test bear ... ignored test bunny ... ignored test cat ... ok @@ -1161,11 +1258,21 @@ fn fail_fast_json() { "event": "discover_case", "name": "frog" }, + { + "elapsed_s": "[..]", + "event": "discover_case", + "name": "horse" + }, { "elapsed_s": "[..]", "event": "discover_case", "name": "owl" }, + { + "elapsed_s": "[..]", + "event": "discover_case", + "name": "sheep" + }, { "elapsed_s": "[..]", "event": "discover_complete"