mirror of
				https://github.com/catchorg/Catch2.git
				synced 2025-10-31 12:17:11 +01:00 
			
		
		
		
	Support for multiple reporters
- can't (yet) specify different targets for each reporter (e.g. different files)
This commit is contained in:
		| @@ -23,6 +23,7 @@ namespace Catch { | ||||
|         config.abortAfter = x; | ||||
|     } | ||||
|     inline void addTestOrTags( ConfigData& config, std::string const& _testSpec ) { config.testsOrTags.push_back( _testSpec ); } | ||||
|     inline void addReporterName( ConfigData& config, std::string const& _reporterName ) { config.reporterNames.push_back( _reporterName ); } | ||||
|  | ||||
|     inline void addWarning( ConfigData& config, std::string const& _warning ) { | ||||
|         if( _warning == "NoAssertions" ) | ||||
| @@ -116,7 +117,7 @@ namespace Catch { | ||||
|         cli["-r"]["--reporter"] | ||||
| //            .placeholder( "name[:filename]" ) | ||||
|             .describe( "reporter to use (defaults to console)" ) | ||||
|             .bind( &ConfigData::reporterName, "name" ); | ||||
|             .bind( &addReporterName, "name" ); | ||||
|  | ||||
|         cli["-n"]["--name"] | ||||
|             .describe( "suite name" ) | ||||
|   | ||||
| @@ -17,6 +17,7 @@ | ||||
| // CATCH_CONFIG_CPP11_IS_ENUM : std::is_enum is supported? | ||||
| // CATCH_CONFIG_CPP11_TUPLE : std::tuple is supported | ||||
| // CATCH_CONFIG_CPP11_LONG_LONG : is long long supported? | ||||
| // CATCH_CONFIG_CPP11_OVERRIDE : is override supported? | ||||
|  | ||||
| // CATCH_CONFIG_CPP11_OR_GREATER : Is C++11 supported? | ||||
|  | ||||
| @@ -138,6 +139,11 @@ | ||||
| #    define CATCH_INTERNAL_CONFIG_CPP11_LONG_LONG | ||||
| #  endif | ||||
|  | ||||
| #  if !defined(CATCH_INTERNAL_CONFIG_CPP11_OVERRIDE) | ||||
| #    define CATCH_INTERNAL_CONFIG_CPP11_OVERRIDE | ||||
| #  endif | ||||
|  | ||||
|  | ||||
| #endif // __cplusplus >= 201103L | ||||
|  | ||||
| // Now set the actual defines based on the above + anything the user has configured | ||||
| @@ -162,6 +168,9 @@ | ||||
| #if defined(CATCH_INTERNAL_CONFIG_CPP11_LONG_LONG) && !defined(CATCH_CONFIG_NO_LONG_LONG) && !defined(CATCH_CONFIG_CPP11_LONG_LONG) | ||||
| #   define CATCH_CONFIG_CPP11_LONG_LONG | ||||
| #endif | ||||
| #if defined(CATCH_INTERNAL_CONFIG_CPP11_OVERRIDE) && !defined(CATCH_CONFIG_NO_OVERRIDE) && !defined(CATCH_CONFIG_CPP11_OVERRIDE) | ||||
| #   define CATCH_CONFIG_CPP11_OVERRIDE | ||||
| #endif | ||||
|  | ||||
|  | ||||
| // noexcept support: | ||||
| @@ -180,5 +189,12 @@ | ||||
| #   define CATCH_NULL NULL | ||||
| #endif | ||||
|  | ||||
| // override support | ||||
| #ifdef CATCH_CONFIG_CPP11_OVERRIDE | ||||
| #   define CATCH_OVERRIDE override | ||||
| #else | ||||
| #   define CATCH_OVERRIDE | ||||
| #endif | ||||
|  | ||||
| #endif // TWOBLUECUBES_CATCH_COMPILER_CAPABILITIES_HPP_INCLUDED | ||||
|  | ||||
|   | ||||
| @@ -68,11 +68,11 @@ namespace Catch { | ||||
|         ShowDurations::OrNot showDurations; | ||||
|         RunTests::InWhatOrder runOrder; | ||||
|  | ||||
|         std::string reporterName; | ||||
|         std::string outputFilename; | ||||
|         std::string name; | ||||
|         std::string processName; | ||||
|  | ||||
|         std::vector<std::string> reporterNames; | ||||
|         std::vector<std::string> testsOrTags; | ||||
|     }; | ||||
|  | ||||
| @@ -133,7 +133,7 @@ namespace Catch { | ||||
|             m_stream = stream; | ||||
|         } | ||||
|  | ||||
|         std::string getReporterName() const { return m_data.reporterName; } | ||||
|         std::vector<std::string> getReporterNames() const { return m_data.reporterNames; } | ||||
|  | ||||
|         int abortAfter() const { return m_data.abortAfter; } | ||||
|  | ||||
|   | ||||
| @@ -8,7 +8,7 @@ | ||||
| #ifndef TWOBLUECUBES_CATCH_CONTEXT_IMPL_HPP_INCLUDED | ||||
| #define TWOBLUECUBES_CATCH_CONTEXT_IMPL_HPP_INCLUDED | ||||
|  | ||||
| #include "catch_runner_impl.hpp" | ||||
| #include "catch_run_context.hpp" | ||||
|  | ||||
| #include "catch_context.h" | ||||
| #include "catch_stream.hpp" | ||||
|   | ||||
| @@ -16,7 +16,7 @@ | ||||
| #pragma clang diagnostic ignored "-Wweak-vtables" | ||||
| #endif | ||||
|  | ||||
| #include "../catch_runner.hpp" | ||||
| #include "../catch_session.hpp" | ||||
| #include "catch_registry_hub.hpp" | ||||
| #include "catch_notimplemented_exception.hpp" | ||||
| #include "catch_context_impl.hpp" | ||||
| @@ -36,6 +36,7 @@ | ||||
| #include "catch_result_builder.hpp" | ||||
| #include "catch_tag_alias_registry.hpp" | ||||
|  | ||||
| #include "../reporters/catch_reporter_multi.hpp" | ||||
| #include "../reporters/catch_reporter_xml.hpp" | ||||
| #include "../reporters/catch_reporter_junit.hpp" | ||||
| #include "../reporters/catch_reporter_console.hpp" | ||||
|   | ||||
| @@ -263,6 +263,8 @@ namespace Catch | ||||
|         virtual FactoryMap const& getFactories() const = 0; | ||||
|     }; | ||||
|  | ||||
|     Ptr<IStreamingReporter> addReporter( Ptr<IStreamingReporter> const& existingReporter, Ptr<IStreamingReporter> const& additionalReporter ); | ||||
|      | ||||
| } | ||||
|  | ||||
| #endif // TWOBLUECUBES_CATCH_INTERFACES_REPORTER_H_INCLUDED | ||||
|   | ||||
		Reference in New Issue
	
	Block a user
	 Phil Nash
					Phil Nash