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
sourceimpl<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.
sourceimpl<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
sourceimpl<'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,
sourceimpl<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>,
sourcefn retried_steps(&self) -> usize
fn retried_steps(&self) -> usize
sourcefn parsing_errors(&self) -> usize
fn parsing_errors(&self) -> usize
sourcefn hook_errors(&self) -> usize
fn hook_errors(&self) -> usize
sourcefn 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
sourceimpl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
const: unstable · sourcefn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
sourceimpl<T> Ext for T
impl<T> Ext for T
sourcefn assert_normalized(self) -> AssertNormalized<T>
fn assert_normalized(self) -> AssertNormalized<T>
sourcefn normalized<W>(self) -> Normalize<W, T>
fn normalized<W>(self) -> Normalize<W, T>
sourcefn summarized(self) -> Summarize<T>
fn summarized(self) -> Summarize<T>
sourcefn 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>
sourcefn 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,
sourcefn 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>
sourcefn 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,
sourcefn 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 moresourcefn 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