Ich verwende CTest in meinem Projekt. Ich fügte einfaches Skript hinzu, um Tests als POST_BUILD
auszuführen. Alles funktioniert gut, wenn ich ein Projekt mit make
baue.Wie wird der Bibliothekspfad für CTest beim Erstellen eines Pakets mit dpkg-builpackage festgelegt?
Der interessante Teil beginnt, wenn ich Paket mit dpkg-buildpackage
baue. CTest scheint nach Bibliotheken in Systemverzeichnissen zu suchen, anstatt eine aktuell erstellte zu verwenden. Gibt es eine Möglichkeit, CTest
oder dpkg-buildpackage
mitzuteilen, eine aktuell erstellte Bibliothek zu verwenden, während Tests ausgeführt werden?
CMake Makro i verwenden:
add_executable(example tests/example.cpp)
target_link_libraries(example my_lib)
enable_testing()
macro(add_unit_test target test)
list(APPEND tests ${test})
add_test(${target} ${test})
endmacro(add_unit_test)
add_unit_test(test_example example)
add_custom_target(all_tests ALL DEPENDS ${tests})
add_custom_command(
TARGET all_tests
COMMENT "Run tests"
POST_BUILD COMMAND ctest ARGS --output-on-failure
WORKING_DIRECTORY ${CMAKE_BINARY_DIR}
)
'CTest scheint für Bibliotheken in Systemverzeichnissen zu suchen, anstatt eine zur Zeit gebaut one.' der Verwendung - Wahrscheinlicher ist, ist es nur ** Ihre Umgebung ** ist konfiguriert, um Bibliotheken in Systemverzeichnissen gegenüber projektlokalen vorzuziehen. Haben Sie versucht, 'example' ausführbare Datei direkt aufzurufen? Welche Bibliotheken werden in diesem Fall verwendet? – Tsyvarev
@Tsyvarev Wenn ich es direkt ausführe, verwende ich projektlokale Bibliotheken. Vielleicht muss ich einige Einstellungen auf debian/rules setzen, aber ich weiß jetzt einfach nicht, was genau ich brauche – Yaroslav