summaryrefslogtreecommitdiff
path: root/cli/tools/test/reporters/mod.rs
diff options
context:
space:
mode:
Diffstat (limited to 'cli/tools/test/reporters/mod.rs')
-rw-r--r--cli/tools/test/reporters/mod.rs53
1 files changed, 53 insertions, 0 deletions
diff --git a/cli/tools/test/reporters/mod.rs b/cli/tools/test/reporters/mod.rs
new file mode 100644
index 000000000..a3270ad3e
--- /dev/null
+++ b/cli/tools/test/reporters/mod.rs
@@ -0,0 +1,53 @@
+// Copyright 2018-2023 the Deno authors. All rights reserved. MIT license.
+
+use super::*;
+
+mod compound;
+mod junit;
+mod pretty;
+
+pub use compound::CompoundTestReporter;
+pub use junit::JunitTestReporter;
+pub use pretty::PrettyTestReporter;
+
+pub trait TestReporter {
+ fn report_register(&mut self, description: &TestDescription);
+ fn report_plan(&mut self, plan: &TestPlan);
+ fn report_wait(&mut self, description: &TestDescription);
+ fn report_output(&mut self, output: &[u8]);
+ fn report_result(
+ &mut self,
+ description: &TestDescription,
+ result: &TestResult,
+ elapsed: u64,
+ );
+ fn report_uncaught_error(&mut self, origin: &str, error: Box<JsError>);
+ fn report_step_register(&mut self, description: &TestStepDescription);
+ fn report_step_wait(&mut self, description: &TestStepDescription);
+ fn report_step_result(
+ &mut self,
+ desc: &TestStepDescription,
+ result: &TestStepResult,
+ elapsed: u64,
+ tests: &IndexMap<usize, TestDescription>,
+ test_steps: &IndexMap<usize, TestStepDescription>,
+ );
+ fn report_summary(
+ &mut self,
+ elapsed: &Duration,
+ tests: &IndexMap<usize, TestDescription>,
+ test_steps: &IndexMap<usize, TestStepDescription>,
+ );
+ fn report_sigint(
+ &mut self,
+ tests_pending: &HashSet<usize>,
+ tests: &IndexMap<usize, TestDescription>,
+ test_steps: &IndexMap<usize, TestStepDescription>,
+ );
+ fn flush_report(
+ &mut self,
+ elapsed: &Duration,
+ tests: &IndexMap<usize, TestDescription>,
+ test_steps: &IndexMap<usize, TestStepDescription>,
+ ) -> anyhow::Result<()>;
+}