Class IEventListener

Inheritance Relationships

Derived Types

Class Documentation

class IEventListener

The common base for all reporters and event listeners

Implementing classes must also implement:

//! User-friendly description of the reporter/listener type
static std::string getDescription()
Generally shouldn’t be derived from by users of Catch2 directly, instead they should derive from one of the utility bases that derive from this class.

Subclassed by Catch::EventListenerBase, Catch::ReporterBase

Public Functions

inline IEventListener(IConfig const *config)
virtual ~IEventListener()
inline ReporterPreferences const &getPreferences() const
virtual void noMatchingTestCases(StringRef unmatchedSpec) = 0

Called when no test cases match provided test spec.

virtual void reportInvalidTestSpec(StringRef invalidArgument) = 0

Called for all invalid test specs from the cli.

virtual void testRunStarting(TestRunInfo const &testRunInfo) = 0

Called once in a testing run before tests are started

Not called if tests won’t be run (e.g. only listing will happen)

virtual void testCaseStarting(TestCaseInfo const &testInfo) = 0

Called once for each TEST_CASE, no matter how many times it is entered.

virtual void testCasePartialStarting(TestCaseInfo const &testInfo, uint64_t partNumber) = 0

Called every time a TEST_CASE is entered, including repeats (due to sections)

virtual void sectionStarting(SectionInfo const &sectionInfo) = 0

Called when a SECTION is being entered. Not called for skipped sections.

virtual void benchmarkPreparing(StringRef benchmarkName) = 0

Called when user-code is being probed before the actual benchmark runs.

virtual void benchmarkStarting(BenchmarkInfo const &benchmarkInfo) = 0

Called after probe but before the user-code is being benchmarked.

virtual void benchmarkEnded(BenchmarkStats<> const &benchmarkStats) = 0

Called with the benchmark results if benchmark successfully finishes.

virtual void benchmarkFailed(StringRef benchmarkName) = 0

Called if running the benchmarks fails for any reason.

virtual void assertionStarting(AssertionInfo const &assertionInfo) = 0

Called before assertion success/failure is evaluated.

virtual void assertionEnded(AssertionStats const &assertionStats) = 0

Called after assertion was fully evaluated.

virtual void sectionEnded(SectionStats const &sectionStats) = 0

Called after a SECTION has finished running.

virtual void testCasePartialEnded(TestCaseStats const &testCaseStats, uint64_t partNumber) = 0

Called every time a TEST_CASE is entered, including repeats (due to sections)

virtual void testCaseEnded(TestCaseStats const &testCaseStats) = 0

Called once for each TEST_CASE, no matter how many times it is entered.

virtual void testRunEnded(TestRunStats const &testRunStats) = 0

Called once after all tests in a testing run are finished

Not called if tests weren’t run (e.g. only listings happened)

virtual void skipTest(TestCaseInfo const &testInfo) = 0

Called with test cases that are skipped due to the test run aborting. NOT called for test cases that are explicitly skipped using the SKIP macro.

Deprecated - will be removed in the next major release.

virtual void fatalErrorEncountered(StringRef error) = 0

Called if a fatal error (signal/structured exception) occurred.

virtual void listReporters(std::vector<ReporterDescription> const &descriptions) = 0

Writes out information about provided reporters using reporter-specific format.

virtual void listListeners(std::vector<ListenerDescription> const &descriptions) = 0

Writes out the provided listeners descriptions using reporter-specific format.

virtual void listTests(std::vector<TestCaseHandle> const &tests) = 0

Writes out information about provided tests using reporter-specific format.

virtual void listTags(std::vector<TagInfo> const &tags) = 0

Writes out information about the provided tags using reporter-specific format.

Protected Attributes

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.