Horizon
|
Utility base for reporters that need to handle all results at once. More...
#include <catch_amalgamated.hpp>
Classes | |
struct | Node |
struct | SectionNode |
Public Types | |
using | TestCaseNode = Node< TestCaseStats, SectionNode > |
using | TestRunNode = Node< TestRunStats, TestCaseNode > |
Public Member Functions | |
void | benchmarkPreparing (StringRef) override |
Called when user-code is being probed before the actual benchmark runs. | |
void | benchmarkStarting (BenchmarkInfo const &) override |
Called after probe but before the user-code is being benchmarked. | |
void | benchmarkEnded (BenchmarkStats<> const &benchmarkStats) override |
Called with the benchmark results if benchmark successfully finishes. | |
void | benchmarkFailed (StringRef) override |
Called if running the benchmarks fails for any reason. | |
void | noMatchingTestCases (StringRef) override |
Called when no test cases match provided test spec. | |
void | reportInvalidTestSpec (StringRef) override |
Called for all invalid test specs from the cli. | |
void | fatalErrorEncountered (StringRef) override |
Called if a fatal error (signal/structured exception) occured. | |
void | testRunStarting (TestRunInfo const &) override |
Called once in a testing run before tests are started. More... | |
void | testCaseStarting (TestCaseInfo const &) override |
Called once for each TEST_CASE, no matter how many times it is entered. | |
void | testCasePartialStarting (TestCaseInfo const &, uint64_t) override |
Called every time a TEST_CASE is entered, including repeats (due to sections) | |
void | sectionStarting (SectionInfo const §ionInfo) override |
Called when a SECTION is being entered. Not called for skipped sections. | |
void | assertionStarting (AssertionInfo const &) override |
Called before assertion success/failure is evaluated. | |
void | assertionEnded (AssertionStats const &assertionStats) override |
Called after assertion was fully evaluated. | |
void | sectionEnded (SectionStats const §ionStats) override |
Called after a SECTION has finished running. | |
void | testCasePartialEnded (TestCaseStats const &, uint64_t) override |
Called every time a TEST_CASE is entered, including repeats (due to sections) | |
void | testCaseEnded (TestCaseStats const &testCaseStats) override |
Called once for each TEST_CASE, no matter how many times it is entered. | |
void | testRunEnded (TestRunStats const &testRunStats) override |
Called once after all tests in a testing run are finished. More... | |
virtual void | testRunEndedCumulative ()=0 |
Customization point: called after last test finishes (testRunEnded has been handled) | |
void | skipTest (TestCaseInfo const &) override |
Called with test cases that are skipped due to the test run aborting. | |
ReporterBase (ReporterConfig &&config) | |
![]() | |
ReporterBase (ReporterConfig &&config) | |
void | listReporters (std::vector< ReporterDescription > const &descriptions) override |
Provides a simple default listing of reporters. More... | |
void | listListeners (std::vector< ListenerDescription > const &descriptions) override |
Provides a simple default listing of listeners. More... | |
void | listTests (std::vector< TestCaseHandle > const &tests) override |
Provides a simple default listing of tests. More... | |
void | listTags (std::vector< TagInfo > const &tags) override |
Provides a simple default listing of tags. More... | |
![]() | |
IEventListener (IConfig const *config) | |
ReporterPreferences const & | getPreferences () const |
Protected Attributes | |
bool | m_shouldStoreSuccesfulAssertions = true |
Should the cumulative base store the assertion expansion for succesful assertions? | |
bool | m_shouldStoreFailedAssertions = true |
Should the cumulative base store the assertion expansion for failed assertions? | |
Detail::unique_ptr< TestRunNode > | m_testRun |
The root node of the test run tree. | |
![]() | |
Detail::unique_ptr< IStream > | m_wrapped_stream |
The stream wrapper as passed to us by outside code. | |
std::ostream & | m_stream |
Cached output stream from m_wrapped_stream to reduce number of indirect calls needed to write output. | |
Detail::unique_ptr< ColourImpl > | m_colour |
Colour implementation this reporter was configured for. | |
std::map< std::string, std::string > | m_customOptions |
The custom reporter options user passed down to the reporter. | |
![]() | |
ReporterPreferences | m_preferences |
Derived classes can set up their preferences here. | |
IConfig const * | m_config |
The test run's config as filled in from CLI and defaults. | |
Utility base for reporters that need to handle all results at once.
It stores tree of all test cases, sections and assertions, and after the test run is finished, calls into testRunEndedCumulative
to pass the control to the deriving class.
If you are deriving from this class and override any testing related member functions, you should first call into the base's implementation to avoid breaking the tree construction.
Due to the way this base functions, it has to expand assertions up-front, even if they are later unused (e.g. because the deriving reporter does not report successful assertions, or because the deriving reporter does not use assertion expansion at all). Derived classes can use two customization points, m_shouldStoreSuccesfulAssertions
and m_shouldStoreFailedAssertions
, to disable the expansion and gain extra performance. Accessing the assertion expansions if it wasn't stored is UB.
|
overridevirtual |
Called once after all tests in a testing run are finished.
Not called if tests weren't run (e.g. only listings happened)
Implements Catch::IEventListener.
|
inlineoverridevirtual |
Called once in a testing run before tests are started.
Not called if tests won't be run (e.g. only listing will happen)
Implements Catch::IEventListener.
Reimplemented in Catch::SonarQubeReporter, and Catch::JunitReporter.