gtest unter Linux einrichten
gtest unter Linux einrichten
Bei meinen Software Projekten achte ich stets darauf, dass sie systemunabhängig umgesetzt werden. So wird jedes Programm für Windows und Linux compiliert (sorry Mac Benutzer). Bei dieser Arbeit sind Unit Test extrems wichtig, da eine Inkompatibilität zwischen den Systemen und dem eigenen Code so rasch aufgedeckt wird. Da man immer wieder auf solche Probleme stößt wäre die Entwicklung ohne automatisierte Tests Wahnsinn. Vor einiger Zeit habe ich euch gezeigt wie man das Google Test Framework gtest mit Visual Studio unter Windows nutzt. Da ich das Projekt nun auf Ubuntu portiere müssen die Tests dort auch laufen.
Fehler
Ich habe den Source Code von meinem Windows Projekt einfach übernommen und wollte dieses unter Linux bauen. Da kommt aber bereits vom Compiler folgende Fehlermeldung:
fatal error: gtest/gtest.h: No such file or directory
Anders als bei Visual Studio ist gtest nicht Teil meiner IDE, ich muss mich selber darum kümmern und diese Bibliothek installieren.
Installation
Der erste Schritt ist die Installation von gtest, da dieses standardmäßig nicht dabei ist:
sudo apt-get install libgtest-dev
Im Prinzip kann man nun bereits loslegen und Tests schreiben. Die header Dateien sind nun im System vorhanden. Spätestens wenn man nun das Projekt compilieren will erhält man folgende Fehlermeldung:
Die Meldung vom Linker lautet:
/usr/bin/ld: cannot find -lgtest /usr/bin/ld: cannot find -lgtest_main
die beiden Bibliotheken gtest und gtest_main wurden nicht gefunden. Grund ist, dass die Bibliothek noch nicht erstellt wurde, das müssen wir manuell erledigen.
gtest LIB bauen
Die folgenden Komandos erstellen die gtest Bibliothek aus dem zuvor installierten Source Code:
cd /usr/src/gtest sudo cmake CMakeLists.txt sudo make
Zuletzt muss man nur noch die beiden erstellten Bibliotheken in das /usr/lib Verzeichniskopieren, damit der Linker diese dann auch findet.
sudo cp *.a /usr/lib
Problem
Sollte bei euch cmake noch nicht installiert sein, dann hilft folgendes Kommando weiter:
sudo apt-get install cmake
Fazit
Um gtest unter Linux einrichten zu können ist ein wenig manuelle Arbeit notwendig. Bis auf die paar Kommandos die man für die Einrichtung benötigt läuft gtest unter Linux aber exakt gleich wie unter Windows mit Visual Studio. Mit einem Test Framework und guten Tests minimiert man den Wartungsaufwand für geschriebenen Code enorm und beugt so aktiv gegen „legacy code“ vor.