<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[Name von Testcase bei Boost::Test erhalten]]></title><description><![CDATA[<p>Hi,</p>
<p>meine Testcases sehen bisher z. T. so aus:</p>
<pre><code class="language-cpp">BOOST_AUTO_TEST_CASE( Rearranger_move_nd_systematic )
{
	const string TEST_CASE_NAME = &quot;Rearranger_move_nd_systematic&quot;;

	...
}
</code></pre>
<p>Weiss jemand, ob ich mir die Definition der String-Konstante irgendwie sparen kann, d. h. den Namen des Testcases z. B. über ein Makro erhalten?</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/283917/name-von-testcase-bei-boost-test-erhalten</link><generator>RSS for Node</generator><lastBuildDate>Wed, 19 Aug 2026 22:00:03 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/283917.rss" rel="self" type="application/rss+xml"/><pubDate>Tue, 22 Mar 2011 09:38:00 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Name von Testcase bei Boost::Test erhalten on Tue, 22 Mar 2011 09:38:00 GMT]]></title><description><![CDATA[<p>Hi,</p>
<p>meine Testcases sehen bisher z. T. so aus:</p>
<pre><code class="language-cpp">BOOST_AUTO_TEST_CASE( Rearranger_move_nd_systematic )
{
	const string TEST_CASE_NAME = &quot;Rearranger_move_nd_systematic&quot;;

	...
}
</code></pre>
<p>Weiss jemand, ob ich mir die Definition der String-Konstante irgendwie sparen kann, d. h. den Namen des Testcases z. B. über ein Makro erhalten?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2038051</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2038051</guid><dc:creator><![CDATA[ingobulla]]></dc:creator><pubDate>Tue, 22 Mar 2011 09:38:00 GMT</pubDate></item><item><title><![CDATA[Reply to Name von Testcase bei Boost::Test erhalten on Tue, 22 Mar 2011 15:29:31 GMT]]></title><description><![CDATA[<p>Schau doch einfach was der Präprozessor ausspuckt, (Flag /E beim MSVC) wenn du nur einen einzelnen leeren BOOST_AUTO_TEST_CASE definierst. Dann weißt du wozu boos den Makro-Parameter verarbeitet.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2038334</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2038334</guid><dc:creator><![CDATA[pumuckl]]></dc:creator><pubDate>Tue, 22 Mar 2011 15:29:31 GMT</pubDate></item><item><title><![CDATA[Reply to Name von Testcase bei Boost::Test erhalten on Fri, 17 Jun 2011 11:46:59 GMT]]></title><description><![CDATA[<p>pumuckl schrieb:</p>
<blockquote>
<p>Schau doch einfach was der Präprozessor ausspuckt, (Flag /E beim MSVC) wenn du nur einen einzelnen leeren BOOST_AUTO_TEST_CASE definierst. Dann weißt du wozu boos den Makro-Parameter verarbeitet.</p>
</blockquote>
<p>Ich habe den leeren Test-Case</p>
<pre><code class="language-cpp">BOOST_AUTO_TEST_CASE( Rearranger_branch_manual )
{ }
</code></pre>
<p>genommen und durch den Präprozessor geschickt. Dann bekomme ich</p>
<pre><code class="language-cpp">struct Rearranger_branch_manual : public BOOST_AUTO_TEST_CASE_FIXTURE { void test_method(); }; 
static void Rearranger_branch_manual_invoker() { Rearranger_branch_manual t; t.test_method(); } 
struct Rearranger_branch_manual_id {}; 
static boost::unit_test::ut_detail::auto_test_unit_registrar Rearranger_branch_manual_registrar12( boost::unit_test::make_test_case( &amp;Rearranger_branch_manual_invoker, &quot;Rearranger_branch_manual&quot; ), boost::unit_test::ut_detail::auto_tc_exp_fail&lt; Rearranger_branch_manual_id&gt;::instance()-&gt;value() ); 
void Rearranger_branch_manual::test_method() {}
</code></pre>
<p>als den Bereich, wo &quot;Rearranger_branch_manual&quot; im präprozessierten Code vorkommt.</p>
<p>Sehe ich das richtig, dass ich hieraus den Namen meines Testcases nicht rückgewinnen kann?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2079733</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2079733</guid><dc:creator><![CDATA[ingobulla]]></dc:creator><pubDate>Fri, 17 Jun 2011 11:46:59 GMT</pubDate></item><item><title><![CDATA[Reply to Name von Testcase bei Boost::Test erhalten on Mon, 20 Jun 2011 07:49:03 GMT]]></title><description><![CDATA[<p>Vielleicht bietet BOOST_AUTO_TEST_CASE_FIXTURE als Basisklasse ja irgendwelche entsprechenden Funktionalitäten an.<br />
Alternativ kannst du dir natürlich auch ein eigenes Makro schreiben, indem du BOOST_FIXTURE_TEST_CASE und BOOST_AUTO_TEST_CASE zusammenfasst und modifizierst:</p>
<pre><code class="language-cpp">#define BOOST_NAMED_AUTO_TEST_CASE( test_name )                    \
struct test_name : public BOOST_AUTO_TEST_CASE_FIXTURE                  \
{                                                                       \
  void test_method();                                                   \
  static char const* get_test_name()                                    \
  { return #test_name ; }                                               \
};                                                                      \
                                                                        \
static void BOOST_AUTO_TC_INVOKER( test_name )()                        \
{                                                                       \
    test_name t;                                                        \
    t.test_method();                                                    \
}                                                                       \
                                                                        \
struct BOOST_AUTO_TC_UNIQUE_ID( test_name ) {};                         \
                                                                        \
BOOST_AUTO_TU_REGISTRAR( test_name )(                                   \
    boost::unit_test::make_test_case(                                   \
        &amp;BOOST_AUTO_TC_INVOKER( test_name ), #test_name ),              \
    boost::unit_test::ut_detail::auto_tc_exp_fail&lt;                      \
        BOOST_AUTO_TC_UNIQUE_ID( test_name )&gt;::instance()-&gt;value() );   \
                                                                        \
void test_name::test_method()                                           \

/* ... */

BOOST_AUTO_TEST_CASE( Rearranger_move_nd_systematic )
{
    std::cout &lt;&lt; get_test_name();
    /* ... */
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2080938</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2080938</guid><dc:creator><![CDATA[pumuckl]]></dc:creator><pubDate>Mon, 20 Jun 2011 07:49:03 GMT</pubDate></item></channel></rss>