diff options
Diffstat (limited to 'cli/args/flags.rs')
-rw-r--r-- | cli/args/flags.rs | 21 |
1 files changed, 20 insertions, 1 deletions
diff --git a/cli/args/flags.rs b/cli/args/flags.rs index 1c18ce00f..2559cf0a1 100644 --- a/cli/args/flags.rs +++ b/cli/args/flags.rs @@ -333,6 +333,7 @@ pub struct TestFlags { pub doc: bool, pub no_run: bool, pub coverage_dir: Option<String>, + pub clean: bool, pub fail_fast: Option<NonZeroUsize>, pub files: FileFlags, pub allow_none: bool, @@ -2631,6 +2632,14 @@ Directory arguments are expanded to all contained files matching the glob .help("Collect coverage profile data into DIR. If DIR is not specified, it uses 'coverage/'."), ) .arg( + Arg::new("clean") + .long("clean") + .help("Empty the temporary coverage profile data directory before running tests. + +Note: running multiple `deno test --clean` calls in series or parallel for the same coverage directory may cause race conditions.") + .action(ArgAction::SetTrue), + ) + .arg( Arg::new("parallel") .long("parallel") .help("Run test modules in parallel. Parallelism defaults to the number of available CPUs or the value in the DENO_JOBS environment variable.") @@ -4240,6 +4249,7 @@ fn test_parse(flags: &mut Flags, matches: &mut ArgMatches) { let doc = matches.get_flag("doc"); let allow_none = matches.get_flag("allow-none"); let filter = matches.remove_one::<String>("filter"); + let clean = matches.get_flag("clean"); let fail_fast = if matches.contains_id("fail-fast") { Some( @@ -4325,6 +4335,7 @@ fn test_parse(flags: &mut Flags, matches: &mut ArgMatches) { no_run, doc, coverage_dir: matches.remove_one::<String>("coverage"), + clean, fail_fast, files: FileFlags { include, ignore }, filter, @@ -8189,7 +8200,7 @@ mod tests { #[test] fn test_with_flags() { #[rustfmt::skip] - let r = flags_from_vec(svec!["deno", "test", "--unstable", "--no-npm", "--no-remote", "--trace-leaks", "--no-run", "--filter", "- foo", "--coverage=cov", "--location", "https:foo", "--allow-net", "--allow-none", "dir1/", "dir2/", "--", "arg1", "arg2"]); + let r = flags_from_vec(svec!["deno", "test", "--unstable", "--no-npm", "--no-remote", "--trace-leaks", "--no-run", "--filter", "- foo", "--coverage=cov", "--clean", "--location", "https:foo", "--allow-net", "--allow-none", "dir1/", "dir2/", "--", "arg1", "arg2"]); assert_eq!( r.unwrap(), Flags { @@ -8207,6 +8218,7 @@ mod tests { concurrent_jobs: None, trace_leaks: true, coverage_dir: Some("cov".to_string()), + clean: true, watch: Default::default(), reporter: Default::default(), junit_path: None, @@ -8294,6 +8306,7 @@ mod tests { concurrent_jobs: Some(NonZeroUsize::new(4).unwrap()), trace_leaks: false, coverage_dir: None, + clean: false, watch: Default::default(), junit_path: None, }), @@ -8330,6 +8343,7 @@ mod tests { concurrent_jobs: None, trace_leaks: false, coverage_dir: None, + clean: false, watch: Default::default(), reporter: Default::default(), junit_path: None, @@ -8371,6 +8385,7 @@ mod tests { concurrent_jobs: None, trace_leaks: false, coverage_dir: None, + clean: false, watch: Default::default(), reporter: Default::default(), junit_path: None, @@ -8506,6 +8521,7 @@ mod tests { concurrent_jobs: None, trace_leaks: false, coverage_dir: None, + clean: false, watch: Default::default(), reporter: Default::default(), junit_path: None, @@ -8540,6 +8556,7 @@ mod tests { concurrent_jobs: None, trace_leaks: false, coverage_dir: None, + clean: false, watch: Some(Default::default()), reporter: Default::default(), junit_path: None, @@ -8573,6 +8590,7 @@ mod tests { concurrent_jobs: None, trace_leaks: false, coverage_dir: None, + clean: false, watch: Some(Default::default()), reporter: Default::default(), junit_path: None, @@ -8608,6 +8626,7 @@ mod tests { concurrent_jobs: None, trace_leaks: false, coverage_dir: None, + clean: false, watch: Some(WatchFlags { hmr: false, no_clear_screen: true, |