e2e 0.1.3

Test framework for stateful integration tests
Documentation
use std::fmt;

pub(super) mod console;

use crate::{TestError, TestSuiteResult};

pub trait Reporter {
    fn name(&self) -> &'static str;
    fn on_test_suite_creation_started(&mut self, name: &str);
    fn on_test_suite_ignored(&mut self, name: &str);
    fn on_test_suite_creation_finished(&mut self, name: &str, error: Option<&TestError>);
    fn on_test_suite_start(&mut self, name: &str);
    fn on_test_suite_end(&mut self, name: &str, result: &TestSuiteResult);
    fn on_test_start(&mut self, name: &str);
    fn on_test_ignored(&mut self, name: &str);
    fn on_test_end(&mut self, name: &str, error: Option<&TestError>);
}

impl fmt::Debug for dyn Reporter {
    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
        write!(f, "Reporter: {}", self.name())
    }
}