summaryrefslogtreecommitdiff
path: root/cli/args/flags.rs
diff options
context:
space:
mode:
Diffstat (limited to 'cli/args/flags.rs')
-rw-r--r--cli/args/flags.rs21
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,