2017-01-23 4 views
0

Ich möchte zwei ausführbare Dateien erstellen: eine ausführbare Datei für die Anwendung und eine für das Testen der Anwendung. Zu diesem Zweck habe ich im Anschluss an den in meiner CMakeLists.txt Datei:CMake hinzufügen (Test) ausführbar

include_directories(include) 

file(GLOB SOURCE "src/*.cc") 
file(GLOB TEST "test/*.cc") 

add_executable(interest_calc ${SOURCE}) 
add_executable(interest_calc_test "src/interest_calc.cc" ${TEST}) 

Da beide src und test Verzeichnisse enthalten Hauptfunktionen, habe ich manuell Quelldateien in dem „Test“ ausführbar hinzuzufügen. Gibt es eine andere, nicht manuelle Möglichkeit, der ausführbaren Datei "test" benötigte Quelldateien hinzuzufügen?

Gibt es außerdem eine bessere Möglichkeit zum Testen der Funktionalität als das Erstellen einer separaten Testdatei? Wenn ja, was/wie?

+0

'Gibt es eine andere, nicht manuelle Möglichkeit, der ausführbaren Datei" test "benötigte Quelldateien hinzuzufügen? Sie können die Datei 'main.cc' in einen anderen Ordner legen und manuell zur Liste hinzufügen. 'Gibt es eine bessere Möglichkeit, Funktionalität zu testen, als eine separate Testdatei zu erstellen? Wenn ja, was/wie? '- Diese Frage ist ** breit ** wie" Was ist ein besserer Weg, Software zu schreiben ". Es gibt zahlreiche Teststrategien. Wählen Sie einfach eine von ihnen, die Ihrem Zweck entspricht. – Tsyvarev

Antwort

0

Sie könnten wie folgt tun:
In der aktuellen CMakeLists.txt, setzen diese Zeilen:

add_subdirectory (src)
add_subdirectory (Test)

und dann fügen Sie in jedem Verzeichnis einen CMakeLists .txt, die die Quellen für die einzelnen Dateien korrekt verknüpft.

Über test, ich habe gehört, dass CMake kann Testautomatisierung, aber ich weiß nicht wirklich, wie es funktioniert.

1

Ein Weg, um Ihren Prozess zu verbessern wäre, die Mäuler Ihrer ausführbaren Datei in eine Bibliothek zu ziehen, dann eine nominale "Haupt" ausführbare Datei, die nur in Ihre Bibliothek und eine "Test" ausführbare Datei, die die Bibliothek, wie Sie wollen um es zu testen.

Auf diese Weise werden alle Änderungen, die Sie vornehmen müssen, in die Bibliothek und den ausführbaren Erstellungsprozess übernommen.

1

Meiner Meinung nach ist die beste Lösung, die eine Bibliothek (gemeinsam oder statisch) und zwei ausführbaren Dateien (eine für das Hauptprogramm und einen für das Testhaupt) zu erstellen. Danach sollten Sie die Bibliothek mit den beiden Anwendungen verknüpfen. In dieser answer schreibe ich eine Erklärung mit einem kleinen Beispiel, wie Sie das Projekt mit cmake verwalten konnten.

Verwandte Themen