UnitTest Setup & C++ IDEs



  • Hallo,

    ich habe immer noch den Eindruck, dass es nicht üblich ist, Tests in C++ in den Entwicklungsprozess einzuführen.

    QtCreator z.b. erstellt keine Tests und erzeugt auch keine dafür vorgesehene Projektstruktur als Standard. Alle neuen Projekte sind erstmal nur eine Sammlung von C++ Dateien, welche zu einem Executable/Library gelinkt werden.

    Viele Projekte in Firmen basieren aber exakt auf diesen Defaultprojekten von IDEs.

    Natürlich kann man dass einrichten, dass man UnitTests hat: http://dragly.org/2013/04/19/setting-up-unittest-with-qt-creator/

    Aber es ist halt nicht Standard, und meine Erfahrung als C++ Freelancer hat mir gezeigt, das es leider auch bei vielen Firmen nicht Standard in der Industrie ist. "Natürlich testen wir" "Unittests?" "?"

    Daher würde mich mal interessieren, wie euer Setup für Unit Tests bei euren Projekten und den dazugehörigen IDEs/Buildprozessen ist.



  • Ich teste üblicherweise mit CppUnit (C++), DUnit (Delphi und selten C++) und NUnit (C#). C++Builder hat IDE-Integration für DUnit, aber da ich selten C++Builder-spezifische C++-Tests schreibe, mache ich sie lieber von Hand mit CppUnit.

    Allgemein hält sich die Nützlichkeit der IDE-Unterstützung in Grenzen; ich bin fast genauso schnell, wenn ich mir den Boilerplate-Code aus dem letzten Unit-Test herüberkopiere, die Testmethoden entferne und den Klassennamen ändere.

    Für das Testprojekt selbst könnte ein Template allerdings hilfreich sein.



  • Das ist mir auch schon negativ bei den üblichen C++ Umgebungen (und Projekten) aufgefallen. Daher bin ich froh, daß dies bei C# quasi zum Standard gehört.



  • Es hat meiner Erfahrung nach nichts mit der C++-Kultur zutun, sondern mit der Projekt-/Firmen-Kultur. Also unabhängig von der Programmiersprache.

    In unseren Java-Projekten wird sehr wenig JUnit genutzt. Bei uns ist die Mitarbeiter-Fluktuation recht groß. Ich habe es selten erlebt, das neue Java-Mitarbeiter TDD für selbstverständlich halten. Es sind dabei sowohl junge (frisch von der Uni) als auch erfahrene Informatiker die in die Projekte kommen, die dann JUnit bzw. TDD im Blut haben.

    Damit TDD wie selbstverständlich genutzt wird, müsste es schon in jedem Einsteigerbuch für Programmiersprachen wie selbstverständlich genutzt werden.


Log in to reply