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 ...


Anmelden zum Antworten