diff options
Diffstat (limited to 'tests/specs')
-rw-r--r-- | tests/specs/README.md | 7 | ||||
-rw-r--r-- | tests/specs/mod.rs | 14 | ||||
-rw-r--r-- | tests/specs/schema.json | 3 |
3 files changed, 23 insertions, 1 deletions
diff --git a/tests/specs/README.md b/tests/specs/README.md index bd3430f05..29c83ec12 100644 --- a/tests/specs/README.md +++ b/tests/specs/README.md @@ -26,6 +26,13 @@ Or just the following, though it might run other tests: cargo test test_name ``` +To run showing the output of every test use `-- --nocapture` (note: this will +cause tests to run sequentially instead of in parallel): + +``` +cargo test test_name -- --nocapture +``` + ## `__test__.json` file This file describes the test(s) to execute and the steps to execute. A basic diff --git a/tests/specs/mod.rs b/tests/specs/mod.rs index 3a52ab29e..c46969f4e 100644 --- a/tests/specs/mod.rs +++ b/tests/specs/mod.rs @@ -19,6 +19,7 @@ use file_test_runner::collection::CollectedTest; use file_test_runner::collection::CollectedTestCategory; use file_test_runner::SubTestResult; use file_test_runner::TestResult; +use once_cell::sync::Lazy; use serde::Deserialize; use test_util::tests_path; use test_util::PathRef; @@ -26,6 +27,9 @@ use test_util::TestContextBuilder; const MANIFEST_FILE_NAME: &str = "__test__.jsonc"; +static NO_CAPTURE: Lazy<bool> = + Lazy::new(|| std::env::args().any(|arg| arg == "--nocapture")); + #[derive(Clone, Deserialize)] #[serde(untagged)] enum VecOrString { @@ -178,7 +182,9 @@ pub fn main() { let _http_guard = test_util::http_server(); file_test_runner::run_tests( &root_category, - file_test_runner::RunOptions { parallel: true }, + file_test_runner::RunOptions { + parallel: !*NO_CAPTURE, + }, run_test, ); } @@ -373,6 +379,12 @@ fn run_step( Some(command_name) => command.name(command_name), None => command, }; + let command = match *NO_CAPTURE { + // deprecated is only to prevent use, so this is fine here + #[allow(deprecated)] + true => command.show_output(), + false => command, + }; let output = command.run(); if step.output.ends_with(".out") { let test_output_path = cwd.join(&step.output); diff --git a/tests/specs/schema.json b/tests/specs/schema.json index d41babd19..bf57b4826 100644 --- a/tests/specs/schema.json +++ b/tests/specs/schema.json @@ -93,6 +93,9 @@ "additionalProperties": { "type": "string" } + }, + "repeat": { + "type": "number" } } }, { |