Ich versuche Unit-Test mit Gtest.kompilieren Reihenfolge Eclipse C++
Ich erstelle ein anderes Projekt, das Datei aus dem ursprünglichen Projekt (Durch Verknüpfung) hat, die getestet werden soll. Im neuen Projekt erstelle ich dann Fake Implementation und Mocks der zusätzlichen Abhängigkeiten der Funktion oder Unit, die ich testen möchte. In der Datei aus dem ursprünglichen Projekt verwende ich #ifdef, um ursprüngliche Abhängigkeiten oder die falsche Implementierung zu enthalten
Das Problem, mit dem ich konfrontiert bin, muss ich die Dateien in einer bestimmten Reihenfolge kompilieren, so dass die gefälschten Implementierungen enthalten sind, wenn Testprojekt ist bauen. Ich benutze MCUXpresso auf Windows 10 mit MinGW, GNU Builder
Antizipieren Sie jede Problemumgehung oder Möglichkeit, die Kontrolle über die Reihenfolge, in der Dateien kompiliert werden.
#ifdef IsTesting //This is part or original project, original header files
#include "Fake_dependency"
#else
#include "Original_Dependency"
#endif
Dann im neuen Projekt definiere ich
#define IsTesting true // Part of Test_Project, followed by other code for testing
, wenn ich das neue Projekt oder Testprojekt kompilieren muß ich diese Datei diese Variable mit definierten kompiliert werden zuerst oder früher als die Datei, die ich bin Verknüpfen aus dem ursprünglichen Projekt
Übersetzen Reihenfolge der cpp-Dateien ist egal. Vielleicht meinst du die Linkbestellung? –
Die Reihenfolge der Zusammenstellung spielt in C++ keine Rolle. Sie müssen vielleicht die richtigen Header-Dateien in Ihre C++ - Datei einfügen ... –
Ich verstehe nicht wirklich, warum die Reihenfolge für Ihre Situation relevant ist, aber wenn Sie in einer bestimmten Reihenfolge kompilieren müssen, können Sie Ihr eigenes Makefile erstellen . – Galik