stc
Loading...
Searching...
No Matches
ExplicitStreamTestReporter.hpp
Go to the documentation of this file.
1#pragma once
2
3#include "catch2/interfaces/catch_interfaces_reporter.hpp"
4#include "stc/Colour.hpp"
5#include <catch2/reporters/catch_reporter_registrars.hpp>
6#include <catch2/interfaces/catch_interfaces_reporter.hpp>
8
9#include <iostream>
10
12public:
13 ExplicitStreamTestReporter(Catch::ReporterConfig&& config)
14 : Catch::Vendored::ModConsoleReporter(std::move(config)) {}
15 int64_t secLevel = 0;
16
17 static std::string getDescription() {
18 return "A test reporter designed to be much more useful for terminal users";
19 }
20
21 void sectionStarting(const Catch::SectionInfo& section) override {
23 std::cout
24 << std::format("{:<70}", getTabs() + section.name)
26 << " STARTING"
28 << std::endl;
29 ++secLevel;
30 }
31 void sectionEnded(const Catch::SectionStats& section) override {
33 --secLevel;
34 std::cout
35 << std::format("{:<70}", getTabs() + section.sectionInfo.name)
36 << " ";
37 if (section.assertions.failed) {
38 std::cout
40 << "FAILED"
42 } else if (section.assertions.skipped) {
43 std::cout
45 << "SKIPPED"
47 } else {
48 std::cout
50 << "PASSED"
52 }
53
54 std::cout << "\n";
55 if (secLevel == 0) {
56 std::cout << "\n";
57 }
58 }
59
60 std::string getTabs() {
61 std::stringstream out;
62
63 for (int64_t i = 0; i < secLevel; ++i) {
64 out << " ";
65 }
66
67 return out.str();
68 }
69
70};
71
72CATCH_REGISTER_REPORTER("explicit", ExplicitStreamTestReporter)
Definition ConsoleReporter.hpp:17
ModConsoleReporter(ReporterConfig &&config)
Definition ConsoleReporter.cpp:378
virtual void sectionStarting(SectionInfo const &_sectionInfo) override
Definition ConsoleReporter.cpp:431
virtual void sectionEnded(SectionStats const &_sectionStats) override
Definition ConsoleReporter.cpp:436
Definition ExplicitStreamTestReporter.hpp:11
void sectionStarting(const Catch::SectionInfo &section) override
Definition ExplicitStreamTestReporter.hpp:21
static std::string getDescription()
Definition ExplicitStreamTestReporter.hpp:17
void sectionEnded(const Catch::SectionStats &section) override
Definition ExplicitStreamTestReporter.hpp:31
ExplicitStreamTestReporter(Catch::ReporterConfig &&config)
Definition ExplicitStreamTestReporter.hpp:13
int64_t secLevel
Definition ExplicitStreamTestReporter.hpp:15
std::string getTabs()
Definition ExplicitStreamTestReporter.hpp:60
Definition ConsoleReporter.cpp:39
static constexpr std::basic_ostream< CharT > & fg(std::basic_ostream< CharT > &stream)
Definition Colour.hpp:229
static constexpr std::basic_ostream< CharT > & reset(std::basic_ostream< CharT > &stream)
Definition Colour.hpp:216