libtest
only.Expand description
Currently used only to support --format=json
option.
Ordering
This Writer
isn’t Normalized
by itself, so should be wrapped into a
writer::Normalize
, otherwise will produce output Event
s in a broken
order.
Ideally, we shouldn’t wrap this into a writer::Normalize
and leave this
to tools, parsing JSON output. Unfortunately, not all tools can do that (ex.
IntelliJ Rust
), so it’s still recommended to wrap this into
writer::Normalize
even if it can mess up timing reports.
Implementations§
source§impl<W: Debug + World> Libtest<W, Stdout>
impl<W: Debug + World> Libtest<W, Stdout>
sourcepub fn stdout() -> Normalize<W, Self>
pub fn stdout() -> Normalize<W, Self>
Creates a new Normalized
Libtest
Writer
outputting into the
io::Stdout
.
sourcepub fn or<AnotherWriter: Writer<W>>(
writer: AnotherWriter
) -> Or<W, AnotherWriter>
pub fn or<AnotherWriter: Writer<W>>(
writer: AnotherWriter
) -> Or<W, AnotherWriter>
Creates a new Writer
which uses a Normalized
Libtest
in case
Cli::format
is set to Json
, or provided the writer
otherwise.
sourcepub fn or_basic() -> OrBasic<W>
pub fn or_basic() -> OrBasic<W>
Creates a new Writer
which uses a Normalized
Libtest
in case
Cli::format
is set to Json
, or a Normalized
writer::Basic
otherwise.
source§impl<W: Debug + World, Out: Write> Libtest<W, Out>
impl<W: Debug + World, Out: Write> Libtest<W, Out>
sourcepub fn new(output: Out) -> Normalize<W, Self>
pub fn new(output: Out) -> Normalize<W, Self>
Creates a new Normalized
Libtest
Writer
outputting into the
provided output
.
Theoretically, normalization should be done by the tool that’s consuming
the output og this Writer
. But lack of clear specification of the
libtest
’s JSON output leads to some tools struggling to
interpret it. So, we recommend using a Normalized
Libtest::new()
rather than a non-Normalized
Libtest::raw()
.
sourcepub const fn raw(output: Out) -> Self
pub const fn raw(output: Out) -> Self
Creates a new non-Normalized
Libtest
Writer
outputting into
the provided output
.
Theoretically, normalization should be done by the tool that’s consuming
the output og this Writer
. But lack of clear specification of the
libtest
’s JSON output leads to some tools struggling to
interpret it. So, we recommend using a Normalized
Libtest::new()
rather than a non-Normalized
Libtest::raw()
.
Trait Implementations§
source§impl<'val, W, Val, Out> Arbitrary<'val, W, Val> for Libtest<W, Out>where
W: World + Debug,
Val: AsRef<str> + 'val,
Out: Write,
impl<'val, W, Val, Out> Arbitrary<'val, W, Val> for Libtest<W, Out>where
W: World + Debug,
Val: AsRef<str> + 'val,
Out: Write,
source§impl<W, O> Stats<W> for Libtest<W, O>where
O: Write,
Self: Writer<W>,
impl<W, O> Stats<W> for Libtest<W, O>where
O: Write,
Self: Writer<W>,
source§fn retried_steps(&self) -> usize
fn retried_steps(&self) -> usize
Step
s.source§fn parsing_errors(&self) -> usize
fn parsing_errors(&self) -> usize
source§fn hook_errors(&self) -> usize
fn hook_errors(&self) -> usize
Scenario
hooks.source§fn execution_has_failed(&self) -> bool
fn execution_has_failed(&self) -> bool
impl<W, O: Write> NonTransforming for Libtest<W, O>
Auto Trait Implementations§
impl<W, Out = Stdout> !RefUnwindSafe for Libtest<W, Out>
impl<W, Out = Stdout> !Send for Libtest<W, Out>
impl<W, Out = Stdout> !Sync for Libtest<W, Out>
impl<W, Out> Unpin for Libtest<W, Out>where
Out: Unpin,
impl<W, Out = Stdout> !UnwindSafe for Libtest<W, Out>
Blanket Implementations§
source§impl<T> Ext for T
impl<T> Ext for T
source§fn assert_normalized(self) -> AssertNormalized<T>
fn assert_normalized(self) -> AssertNormalized<T>
source§fn normalized<W>(self) -> Normalize<W, T>
fn normalized<W>(self) -> Normalize<W, T>
source§fn summarized(self) -> Summarize<T>
fn summarized(self) -> Summarize<T>
source§fn fail_on_skipped(
self
) -> FailOnSkipped<T, fn(_: &Feature, _: Option<&Rule>, _: &Scenario) -> bool>
fn fail_on_skipped(
self
) -> FailOnSkipped<T, fn(_: &Feature, _: Option<&Rule>, _: &Scenario) -> bool>
source§fn fail_on_skipped_with<F>(self, f: F) -> FailOnSkipped<T, F>where
F: Fn(&Feature, Option<&Rule>, &Scenario) -> bool,
fn fail_on_skipped_with<F>(self, f: F) -> FailOnSkipped<T, F>where
F: Fn(&Feature, Option<&Rule>, &Scenario) -> bool,
source§fn repeat_skipped<W>(
self
) -> Repeat<W, T, fn(_: &Result<Event<Cucumber<W>>, Error>) -> bool>
fn repeat_skipped<W>(
self
) -> Repeat<W, T, fn(_: &Result<Event<Cucumber<W>>, Error>) -> bool>
source§fn repeat_failed<W>(
self
) -> Repeat<W, T, fn(_: &Result<Event<Cucumber<W>>, Error>) -> bool>
fn repeat_failed<W>(
self
) -> Repeat<W, T, fn(_: &Result<Event<Cucumber<W>>, Error>) -> bool>
source§fn repeat_if<W, F>(self, filter: F) -> Repeat<W, T, F>where
F: Fn(&Result<Event<Cucumber<W>>, Error>) -> bool,
fn repeat_if<W, F>(self, filter: F) -> Repeat<W, T, F>where
F: Fn(&Result<Event<Cucumber<W>>, Error>) -> bool,
Writer
to re-output filter
ed events at the end of an
output.source§fn tee<W, Wr>(self, other: Wr) -> Tee<T, Wr>where
Wr: Writer<W>,
fn tee<W, Wr>(self, other: Wr) -> Tee<T, Wr>where
Wr: Writer<W>,
other
Writer
to the current one for passing
events to both of them simultaneously.source§fn discard_arbitrary_writes(self) -> Arbitrary<T>
fn discard_arbitrary_writes(self) -> Arbitrary<T>
Writer
into a discard::Arbitrary
one, providing a
no-op ArbitraryWriter
implementation. Read moresource§fn discard_stats_writes(self) -> Stats<T>
fn discard_stats_writes(self) -> Stats<T>
Writer
into a discard::Stats
one, providing a no-op
StatsWriter
implementation returning only 0
. Read more