<?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[CPPUnit tests zählen]]></title><description><![CDATA[<p>Hallo,</p>
<p>für eine kleine Test-Statistik habe ich mir eigene Makros erweitert.<br />
Diese zählen in einer Variablen jeden <em>ausgeführten</em> Test.<br />
Jetzt möchte ich gern wissen wie ich es anstellen kann wirklich alle Bedingungen zu zählen.</p>
<p>Beispiel</p>
<pre><code class="language-cpp">CPPUNIT_ASSERT_EQUAL_STRING_MESSAGE_MB(msg,exp,giv)
   CPPUNIT_ASSERT_EQUAL_STRING_MESSAGE_MB(msg,exp,giv)
   CPPUNIT_ASSERT_EQUAL_STRING_MESSAGE_MB(msg,exp,giv)
</code></pre>
<p>Als Ergebnis möchte ich gern 3 haben.<br />
Wenn Test 2 allerdings schon fehlschlägt kommt das Programm gar nicht bis zum 3. Aufruf.</p>
<p>Weiteres Problem:<br />
in einer Schleife wird eine Bedingung ausgeführt</p>
<p>Beispiel</p>
<pre><code class="language-cpp">for (int i=0; i&lt;100; i++) {
   ...
   CPPUNIT_ASSERT_EQUAL_STRING_MESSAGE_MB(msg,i,giv)
}
</code></pre>
<p>jetzt hätte ich gern 100 als Ergebnis, egal wann ein Test fehlschlägt.</p>
<p>Ich bitte um Tipps</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/253607/cppunit-tests-zählen</link><generator>RSS for Node</generator><lastBuildDate>Sun, 13 Sep 2026 11:43:53 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/253607.rss" rel="self" type="application/rss+xml"/><pubDate>Wed, 04 Nov 2009 15:19:44 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to CPPUnit tests zählen on Wed, 04 Nov 2009 15:19:44 GMT]]></title><description><![CDATA[<p>Hallo,</p>
<p>für eine kleine Test-Statistik habe ich mir eigene Makros erweitert.<br />
Diese zählen in einer Variablen jeden <em>ausgeführten</em> Test.<br />
Jetzt möchte ich gern wissen wie ich es anstellen kann wirklich alle Bedingungen zu zählen.</p>
<p>Beispiel</p>
<pre><code class="language-cpp">CPPUNIT_ASSERT_EQUAL_STRING_MESSAGE_MB(msg,exp,giv)
   CPPUNIT_ASSERT_EQUAL_STRING_MESSAGE_MB(msg,exp,giv)
   CPPUNIT_ASSERT_EQUAL_STRING_MESSAGE_MB(msg,exp,giv)
</code></pre>
<p>Als Ergebnis möchte ich gern 3 haben.<br />
Wenn Test 2 allerdings schon fehlschlägt kommt das Programm gar nicht bis zum 3. Aufruf.</p>
<p>Weiteres Problem:<br />
in einer Schleife wird eine Bedingung ausgeführt</p>
<p>Beispiel</p>
<pre><code class="language-cpp">for (int i=0; i&lt;100; i++) {
   ...
   CPPUNIT_ASSERT_EQUAL_STRING_MESSAGE_MB(msg,i,giv)
}
</code></pre>
<p>jetzt hätte ich gern 100 als Ergebnis, egal wann ein Test fehlschlägt.</p>
<p>Ich bitte um Tipps</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1803289</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1803289</guid><dc:creator><![CDATA[MBreuer]]></dc:creator><pubDate>Wed, 04 Nov 2009 15:19:44 GMT</pubDate></item><item><title><![CDATA[Reply to CPPUnit tests zählen on Wed, 04 Nov 2009 17:29:29 GMT]]></title><description><![CDATA[<p>Sollen wir raten, wie CPPUNIT_ASSERT_EQUAL_STRING_MESSAGE_MB definiert ist?</p>
<blockquote>
<p>Wenn Test 2 allerdings schon fehlschlägt kommt das Programm gar nicht bis zum 3. Aufruf.</p>
</blockquote>
<p>Wieso sollte das so sein?<br />
Falls assert aufgerufen wird, so wie es der Name vermuten lassen könnte: wieso entfernst du es nicht!? Ist aber offensichtlich, also meinst du wohl etwas anderes.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1803376</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1803376</guid><dc:creator><![CDATA[Nanyuki]]></dc:creator><pubDate>Wed, 04 Nov 2009 17:29:29 GMT</pubDate></item><item><title><![CDATA[Reply to CPPUnit tests zählen on Thu, 05 Nov 2009 08:29:45 GMT]]></title><description><![CDATA[<p>Es ist vielleicht nicht so elegant gelöst wie es könnte.<br />
Ich habe eine Klasse Unittest_info<br />
mit einer statischen Variablen, diese soll bei jedem Test erhöht werden.<br />
Danach wird das original-Makro aufgerufen.</p>
<pre><code class="language-cpp">/** zum Vergleichen von Strings (char*)
*/
#define CPPUNIT_ASSERT_EQUAL_STRING_MESSAGE_MB(message,expected,actual)      \
	{\
	(Unittest_info::testCheckCounter++); \
		std::string expectedString=expected;\
		std::string actualString = actual;\
		std::string msgString = message;\
  ( \
  CPPUNIT_NS::assertEquals( (expectedString),              \
                              (actualString),                \
                              CPPUNIT_SOURCELINE(),    \
                              (msgString) ) );\
							  }
</code></pre>
<p>In meiner Statistik gebe ich mit einem XmlOutputterHookMB aus<br />
wieviele Checks durchgeführt wurden.</p>
<p>Ich weis das ich an einem Assert nicht vorbeikomme,<br />
aber vielleicht gibt es ja eine Möglichkeit das</p>
<p>Beim Einfügen des Makros ein Zähler hochgezählt wird,<br />
so das, naiv gedacht, das Zählen dem Präprozessor überlassen wird</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1803586</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1803586</guid><dc:creator><![CDATA[MBreuer]]></dc:creator><pubDate>Thu, 05 Nov 2009 08:29:45 GMT</pubDate></item><item><title><![CDATA[Reply to CPPUnit tests zählen on Thu, 05 Nov 2009 10:06:18 GMT]]></title><description><![CDATA[<p>Das wird so nicht gehen. Selbst wenn man die Anzahl der Ersetzung mitzählen lassen könnte (mir fällt jedenfalls im Moment keine Möglichkeit ein), würden Schleifen dabei nicht berücksichtigt.<br />
Wenn nach dem ersten fehlgeschlagenen Test keine weiteren mehr durchgeführt werden sollen, kannst du dir bei Fehlschlag die relevanten Informationen merken und ein Flag setzen, das vor jedem Test überprüft wird und dazu führt, dass er nicht durchgeführt wird, falls es gesetzt ist. Die Fehlermeldung kannst du dann bei Programmende ausgeben lassen.<br />
Wenn allerdings zwischen den Tests sich noch weiterer Code befindet, der nach dem ersten fehlgeschlagenen Test auch nicht mehr ausgeführt werden darf, sehe ich dafür keine einfache Lösung - sofern die Anzahl der Tests nicht konstant ist, gibt es auch keine.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1803662</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1803662</guid><dc:creator><![CDATA[Nanyuki]]></dc:creator><pubDate>Thu, 05 Nov 2009 10:06:18 GMT</pubDate></item><item><title><![CDATA[Reply to CPPUnit tests zählen on Thu, 05 Nov 2009 10:33:37 GMT]]></title><description><![CDATA[<p>mir würde was zum mitzählen einfallen^^<br />
__COUNTER__ wird zumindest vom MSVC unterstützt und imho auch vom gcc...<br />
nur kann das eben jeder und alles nutzen - vll gibts da noch was anderes, musst du ma in der msdn rumwühlen, aber so wird z.bsp. auch jedes static_assert mitzählen, was du iwo mal im quellcode hast...<br />
allerdings müsste man da wieder die schleife weglassen und die aufrufe von hand einfügen bzw. dem präprozessor sagen...</p>
<p>allerdings find ich den grund für das mitzählen wollen ein wenig komisch...<br />
kann aber auch sein, dass ich ihn einfach nicht verstanden habe...</p>
<p>bb</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1803689</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1803689</guid><dc:creator><![CDATA[unskilled]]></dc:creator><pubDate>Thu, 05 Nov 2009 10:33:37 GMT</pubDate></item><item><title><![CDATA[Reply to CPPUnit tests zählen on Mon, 09 Nov 2009 16:17:56 GMT]]></title><description><![CDATA[<p>Hallo,<br />
das mit __COUNTER__ hab ich probiert,<br />
funktioniert in einer Datei recht schön.</p>
<p>Ich brauche das jetzt aber so das als Letztes eine Bestimmte Datei erzeugt wird,<br />
damit ich den Counter-Wert dann einer Varialblen zuweisen kann, kann jemand einen Tip geben wie ich das provoziere ?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1805608</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1805608</guid><dc:creator><![CDATA[MBreuer]]></dc:creator><pubDate>Mon, 09 Nov 2009 16:17:56 GMT</pubDate></item></channel></rss>