From c9b8462754f84cdbe81e634b05dcd042862281b2 Mon Sep 17 00:00:00 2001 From: Dennis Date: Fri, 7 Jun 2024 10:46:48 +0200 Subject: [PATCH] Write elapsed time after tests have finished --- tests/common/dot_writer.rs | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/tests/common/dot_writer.rs b/tests/common/dot_writer.rs index 47f52e392..9f924fe96 100644 --- a/tests/common/dot_writer.rs +++ b/tests/common/dot_writer.rs @@ -1,6 +1,6 @@ use colored::Colorize; use cucumber::{cli, event, parser, Event}; -use std::io::{self, Write}; +use std::{io::{self, Write}, time::Instant}; #[derive(Debug, Default)] pub struct DotWriter { @@ -13,7 +13,7 @@ pub struct DotWriter { step_failed: usize, step_passed: usize, step_skipped: usize, - // TODO: add timestamp to report timing + start_time: Option, } impl cucumber::Writer for DotWriter { @@ -74,6 +74,11 @@ impl cucumber::Writer for DotWriter { let s = format!("{} skipped", self.step_skipped).cyan(); let p = format!("{} passed", self.step_passed).green(); println!("{} steps ({f}, {s}, {p})", self.step_started); + + let elapsed = Instant::now() - self.start_time.unwrap(); + let minutes = elapsed.as_secs()/60; + let seconds = (elapsed.as_millis() % 60_000) as f64 / 1000.; + println!("{}m{}s", minutes, seconds); } event::Cucumber::ParsingFinished { features: _, @@ -81,8 +86,10 @@ impl cucumber::Writer for DotWriter { scenarios: _, steps: _, parser_errors: _, - } => {} - _ => {} + } => {}, + event::Cucumber::Started => { + self.start_time = Some(Instant::now()); + }, }, Err(e) => println!("Error: {e}"), }