Google Test schreibt Fehler beim Kompilieren
-
Hallo Leute,
hier mal mein Code zu einem Testprogramm für Google Test:
#include <gtest/gtest.h> #include "calcpi.cpp" TEST(ApproxPiTest, calcpi) { ASSERT_EQ(4.0, calcpi(0)); ASSERT_EQ(4.0 * (- 1.0 / 3.0), calcpi(1)); ASSERT_EQ(4.0 * (1.0 / 5.0), calcpi(2); } int main(int argc, char **argv) { ::testing::InitGoogleTest(&argc, argv); return RUN_ALL_TESTS(); }
Die Funktion funktioniert soweit ganz alles richtig.
Hier der Fehler:
ApproxPiTest.cpp:18:0: error: unterminated argument list invoking macro "ASSERT_EQ" ApproxPiTest.cpp: In member function ‘virtual void ApproxPiTest_calcpi_Test::TestBody()’: ApproxPiTest.cpp:11:3: error: ‘ASSERT_EQ’ was not declared in this scope ApproxPiTest.cpp:11:3: error: expected ‘;’ at end of input ApproxPiTest.cpp:11:3: error: expected ‘}’ at end of input
Mein Befehl lautet wie folgt:
g++ -o ApproxPiTest -lgtest ApproxPiTest.cpp
Woran kann das liegen? Was muss ich dafür tun, damit das funzt?
-
Hast du mal versucht, die Fehlermeldung zu verstehen?
-
Hab ich, ich bin nur noch nicht ganz auf den Trichter gekommen ...
-
"unterminated argument list invoking macro "ASSERT_EQ" ", zu deutsch "unbeendete Argumentliste beim Aufruf des Makros ASSERT_EQ" in Zeile 8. Gucken wir in Zeile 8:
ASSERT_EQ(4.0 * (1.0 / 5.0), calcpi(2);
Der Compiler sieht da nicht, wo die Argumentliste zuende ist. Er wartet auf eine Klammer, aber plötzlich ist die Zeile zuende. Der Rest sind Folgefehler.
edit: Huch, da steht ja Zeile 18. Aber ich bin mir ziemlich sicher, dass das die Zeile ist, die hier im Listing Zeile 8 ist.
-
Vielen Dank Bashar. Manchmal sieht man den Wald vor lauter Bäumen nicht mehr ...