diff options
Diffstat (limited to 'examples/207-Rpt-TeamCityReporter.cpp')
-rw-r--r-- | examples/207-Rpt-TeamCityReporter.cpp | 171 |
1 files changed, 0 insertions, 171 deletions
diff --git a/examples/207-Rpt-TeamCityReporter.cpp b/examples/207-Rpt-TeamCityReporter.cpp deleted file mode 100644 index d28460f4..00000000 --- a/examples/207-Rpt-TeamCityReporter.cpp +++ /dev/null @@ -1,171 +0,0 @@ -// 207-Rpt-TeamCityReporter.cpp - -// Catch has built-in and external reporters: -// Built-in: -// - compact -// - console -// - junit -// - xml -// External: -// - automake -// - tap -// - teamcity (this example) - -// main() and reporter code provided in 200-Rpt-CatchMain.cpp - -#include <catch2/catch.hpp> - -#ifdef _MSC_VER -# pragma warning (disable : 4702) // Disable warning: unreachable code -#endif - -TEST_CASE( "TeamCity passes unconditionally succeeding assertion", "[teamcity]" ) { - - SUCCEED(); -} - -TEST_CASE( "TeamCity reports unconditionally failing assertion", "[teamcity]" ) { - - FAIL(); -} - -TEST_CASE( "TeamCity reports failing check", "[teamcity]" ) { - - REQUIRE( 3 == 7 ); -} - -TEST_CASE( "TeamCity reports failing check-false", "[teamcity]" ) { - - REQUIRE_FALSE( 3 == 3 ); -} - -TEST_CASE( "TeamCity reports failing check-that", "[teamcity]" ) { - - using namespace Catch; - - REQUIRE_THAT( "hello", Contains( "world" ) ); -} - -TEST_CASE( "TeamCity reports unexpected exception", "[teamcity]" ) { - - REQUIRE( (throw std::runtime_error("surprise!"), true) ); -} - -TEST_CASE( "TeamCity reports undesired exception", "[teamcity]" ) { - - REQUIRE_NOTHROW( (throw std::runtime_error("surprise!"), true) ); -} - -TEST_CASE( "TeamCity reports missing expected exception", "[teamcity]" ) { - - REQUIRE_THROWS( true ); -} - -TEST_CASE( "TeamCity reports missing specific expected exception", "[teamcity]" ) { - - REQUIRE_THROWS_AS( throw std::bad_alloc(), std::runtime_error ); -} - -TEST_CASE( "TeamCity reports unexpected message in expected exception", "[teamcity]" ) { - - using namespace Catch; - - CHECK_THROWS_WITH( throw std::runtime_error("hello"), "world" ); - CHECK_THROWS_WITH( throw std::runtime_error("hello"), Contains("world") ); -} - -struct MyException: public std::runtime_error -{ - MyException( char const * text ) - : std::runtime_error( text ) {} - - ~MyException() override; -}; - -// prevent -Wweak-vtables: -MyException::~MyException() = default; - -struct MyExceptionMatcher : Catch::MatcherBase< std::runtime_error > -{ - std::string m_text; - - MyExceptionMatcher( char const * text ) - : m_text( text ) - {} - - ~MyExceptionMatcher() override; - - bool match( std::runtime_error const & arg ) const override - { - return m_text == arg.what() ; - } - - std::string describe() const override - { - return "it's me"; - } -}; - -// prevent -Wweak-vtables: -MyExceptionMatcher::~MyExceptionMatcher() = default; - -TEST_CASE( "TeamCity failing check-throws-matches", "[teamcity]" ) { - - CHECK_THROWS_MATCHES( throw MyException("hello"), MyException, MyExceptionMatcher("world") ); -} - -// [!throws] - lets Catch know that this test is likely to throw an exception even if successful. -// This causes the test to be excluded when running with -e or --nothrow. - -// No special effects for the reporter. - -TEST_CASE( "TeamCity throwing exception with tag [!throws]", "[teamcity][!throws]" ) { - - REQUIRE_THROWS( throw std::runtime_error("unsurprisingly") ); -} - -// [!mayfail] - doesn't fail the test if any given assertion fails (but still reports it). This can be useful to flag a work-in-progress, or a known issue that you don't want to immediately fix but still want to track in your tests. - -TEST_CASE( "TeamCity failing assertion with tag [!mayfail]", "[teamcity][!mayfail] " ) { - - REQUIRE( 3 == 7 ); // doesn't fail test case this time, reports: testIgnored - REQUIRE( 3 == 3 ); -} - -// [!shouldfail] - like [!mayfail] but fails the test if it passes. -// This can be useful if you want to be notified of accidental, or third-party, fixes. - -TEST_CASE( "TeamCity succeeding assertion with tag [!shouldfail]", "[teamcity][!shouldfail]" ) { - - SUCCEED( "Marked [!shouldfail]" ); -} - -// Compile & run: -// - g++ -std=c++11 -Wall -I$(CATCH_ROOT) -DCATCH_EXAMPLE_RPT_1=\"include/reporters/catch_reporter_teamcity.hpp\" -o 200-Rpt-CatchMainTeamCity.o -c 200-Rpt-CatchMain.cpp -// - g++ -std=c++11 -Wall -I$(CATCH_ROOT) -o 207-Rpt-TeamCityReporter 207-Rpt-TeamCityReporter.cpp 200-Rpt-CatchMainTeamCity.o && 207-Rpt-TeamCityReporter --list-reporters -// -// - cl -EHsc -I%CATCH_ROOT% -DCATCH_EXAMPLE_RPT_1=\"include/reporters/catch_reporter_teamcity.hpp\" -Fo200-Rpt-CatchMainTeamCity.obj -c 200-Rpt-CatchMain.cpp -// - cl -EHsc -I%CATCH_ROOT% 207-Rpt-TeamCityReporter.cpp 200-Rpt-CatchMainTeamCity.o && 207-Rpt-TeamCityReporter --list-reporters - -// Compilation output (--list-reporters): -// Available reporters: -// compact: Reports test results on a single line, suitable for IDEs -// console: Reports test results as plain lines of text -// junit: Reports test results in an XML format that looks like Ant's -// junitreport target -// teamcity: Reports test results as TeamCity service messages -// xml: Reports test results as an XML document - -// Expected output (abbreviated and broken into shorter lines): -// -// prompt> 207-Rpt-TeamCityReporter.exe --reporter teamcity -// ##teamcity[testSuiteStarted name='207-Rpt-TeamCityReporter.exe'] -// ##teamcity[testStarted name='TeamCity passes unconditionally succeeding assertion'] -// ##teamcity[testFinished name='TeamCity passes unconditionally succeeding assertion' duration='1'] -// ##teamcity[testStarted name='TeamCity reports unconditionally failing assertion'] -// ##teamcity[testFailed name='TeamCity reports unconditionally failing assertion' / -// message='.../examples/207-Rpt-TeamCityReporter.cpp:23|n/ -// ...............................................................................|n|n/ -// .../examples/207-Rpt-TeamCityReporter.cpp:25|nexplicit failure'] -// ##teamcity[testFinished name='TeamCity reports unconditionally failing assertion' duration='3'] -// ... |