Incremental naming for annonymous test cases

This commit is contained in:
Phil Nash 2011-01-18 20:09:21 +00:00
parent dd7f13ccbb
commit 2b05dfaf05
3 changed files with 25 additions and 1 deletions

View File

@ -52,7 +52,7 @@
#define SECTION( name, description ) CATCH_SECTION( name, description )
#define TEST_CASE( name, description ) INTERNAL_CATCH_TESTCASE( name, description )
#define ANON_TEST_CASE() INTERNAL_CATCH_TESTCASE( "anon", "Anonymous test case" )
#define ANON_TEST_CASE() INTERNAL_CATCH_TESTCASE( "", "Anonymous test case" )
#define METHOD_AS_TEST_CASE( method, name, description ) CATCH_METHOD_AS_TEST_CASE( method, name, description )
#define REGISTER_REPORTER( name, reporterType ) CATCH_REGISTER_REPORTER( name, reporterType )

View File

@ -53,6 +53,18 @@ namespace Catch
{
}
///////////////////////////////////////////////////////////////////////
TestCaseInfo
(
const TestCaseInfo& other,
const std::string& name
)
: m_test( other.m_test->clone() ),
m_name( name ),
m_description( other.m_description )
{
}
///////////////////////////////////////////////////////////////////////
TestCaseInfo& operator =
(

View File

@ -16,15 +16,26 @@
#include <vector>
#include <set>
#include <sstream>
namespace Catch
{
class TestRegistry : public ITestCaseRegistry
{
public:
TestRegistry()
: m_unnamedCount( 0 )
{
}
virtual void registerTest( const TestCaseInfo& testInfo )
{
if( testInfo.getName() == "" )
{
std::ostringstream oss;
oss << testInfo.getName() << "unnamed/" << ++m_unnamedCount;
return registerTest( TestCaseInfo( testInfo, oss.str() ) );
}
if( m_functions.find( testInfo ) == m_functions.end() )
{
m_functions.insert( testInfo );
@ -41,6 +52,7 @@ namespace Catch
std::set<TestCaseInfo> m_functions;
std::vector<TestCaseInfo> m_functionsInOrder;
size_t m_unnamedCount;
};
struct FreeFunctionTestCase : ITestCase