Write elapsed time after tests have finished
This commit is contained in:
parent
a7956f65ca
commit
c9b8462754
@ -1,6 +1,6 @@
|
|||||||
use colored::Colorize;
|
use colored::Colorize;
|
||||||
use cucumber::{cli, event, parser, Event};
|
use cucumber::{cli, event, parser, Event};
|
||||||
use std::io::{self, Write};
|
use std::{io::{self, Write}, time::Instant};
|
||||||
|
|
||||||
#[derive(Debug, Default)]
|
#[derive(Debug, Default)]
|
||||||
pub struct DotWriter {
|
pub struct DotWriter {
|
||||||
@ -13,7 +13,7 @@ pub struct DotWriter {
|
|||||||
step_failed: usize,
|
step_failed: usize,
|
||||||
step_passed: usize,
|
step_passed: usize,
|
||||||
step_skipped: usize,
|
step_skipped: usize,
|
||||||
// TODO: add timestamp to report timing
|
start_time: Option<Instant>,
|
||||||
}
|
}
|
||||||
|
|
||||||
impl<W: 'static> cucumber::Writer<W> for DotWriter {
|
impl<W: 'static> cucumber::Writer<W> for DotWriter {
|
||||||
@ -74,6 +74,11 @@ impl<W: 'static> cucumber::Writer<W> for DotWriter {
|
|||||||
let s = format!("{} skipped", self.step_skipped).cyan();
|
let s = format!("{} skipped", self.step_skipped).cyan();
|
||||||
let p = format!("{} passed", self.step_passed).green();
|
let p = format!("{} passed", self.step_passed).green();
|
||||||
println!("{} steps ({f}, {s}, {p})", self.step_started);
|
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 {
|
event::Cucumber::ParsingFinished {
|
||||||
features: _,
|
features: _,
|
||||||
@ -81,8 +86,10 @@ impl<W: 'static> cucumber::Writer<W> for DotWriter {
|
|||||||
scenarios: _,
|
scenarios: _,
|
||||||
steps: _,
|
steps: _,
|
||||||
parser_errors: _,
|
parser_errors: _,
|
||||||
} => {}
|
} => {},
|
||||||
_ => {}
|
event::Cucumber::Started => {
|
||||||
|
self.start_time = Some(Instant::now());
|
||||||
|
},
|
||||||
},
|
},
|
||||||
Err(e) => println!("Error: {e}"),
|
Err(e) => println!("Error: {e}"),
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user