Skip to main content

TableReporter

Struct TableReporter 

Source
pub struct TableReporter { /* private fields */ }
Expand description

A reporter that displays test results in a summary table after all tests complete.

This reporter buffers all test results and displays them in a formatted table at the end of execution. Useful for getting an overview of all test results without the noise of real-time output.

§Features

  • Summary table: Clean tabular output after test completion
  • Project ordering: Results ordered by project configuration
  • Emoji indicators: Visual success/failure indicators
  • Modern styling: Attractive table borders and formatting

§Examples

use tanu_core::{Runner, reporter::TableReporter};

let mut runner = Runner::new();
runner.add_reporter(TableReporter::new(false)); // No HTTP details in table

§Output Format

┌─────────┬────────┬──────────────┬────────┐
│ Project │ Module │ Test         │ Result │
├─────────┼────────┼──────────────┼────────┤
│ staging │ api    │ health_check │   🟢   │
│ staging │ auth   │ login        │   🔴   │
│ prod    │ api    │ status       │   🟢   │
└─────────┴────────┴──────────────┴────────┘

Implementations§

Source§

impl TableReporter

Source

pub fn new(capture_http: bool) -> TableReporter

Creates a new table reporter.

§Parameters
  • capture_http: Whether to capture HTTP details (currently unused in table output)
§Examples
use tanu_core::reporter::TableReporter;

let reporter = TableReporter::new(false);

Trait Implementations§

Source§

impl Reporter for TableReporter

Source§

fn run<'life0, 'async_trait>( &'life0 mut self, ) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait,

Source§

fn on_end<'life0, 'async_trait>( &'life0 mut self, project_name: String, module_name: String, test_name: String, test: Test, ) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait,

Called when a test case ends.
Source§

fn on_summary<'life0, 'async_trait>( &'life0 mut self, summary: TestSummary, ) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait,

Called when all tests complete with summary statistics.
Source§

fn on_start<'life0, 'async_trait>( &'life0 mut self, _project: String, _module: String, _test_name: String, ) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>>
where Self: Send + 'async_trait, 'life0: 'async_trait,

Called when a test case starts.
Source§

fn on_check<'life0, 'async_trait>( &'life0 mut self, _project: String, _module: String, _test_name: String, _check: Box<Check>, ) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>>
where Self: Send + 'async_trait, 'life0: 'async_trait,

Called when a check macro is used.
Source§

fn on_call<'life0, 'async_trait>( &'life0 mut self, _project: String, _module: String, _test_name: String, _log: CallLog, ) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>>
where Self: Send + 'async_trait, 'life0: 'async_trait,

Called when a protocol call (HTTP, gRPC, etc.) is made.
Source§

fn on_retry<'life0, 'async_trait>( &'life0 mut self, _project: String, _module: String, _test_name: String, _test: Test, ) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>>
where Self: Send + 'async_trait, 'life0: 'async_trait,

Called when a test case fails but to be retried.

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T> Instrument for T

Source§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
Source§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> IntoEither for T

Source§

fn into_either(self, into_left: bool) -> Either<Self, Self>

Converts self into a Left variant of Either<Self, Self> if into_left is true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
Source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
where F: FnOnce(&Self) -> bool,

Converts self into a Left variant of Either<Self, Self> if into_left(&self) returns true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

impl<T> WithSubscriber for T

Source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more