EDIT2: in diesen Tagen Catch2 installiert ein eigenes Cmake Modul so, nach der Installation, kann es mit
include(GNUInstallDirs)
find_package(Catch2 REQUIRED)
Sie Ihr Projekt CMake machen können in einem anderen Cmake Projekt verwendet werden auf Fang hängen mit find_package
. Auf diese Weise schließen Sie Catch nicht ein und können es unabhängig aktualisieren. Der Prozess wird unter this recipe erläutert, außer dass Sie in diesem Fall nicht mit Bibliotheken arbeiten müssen, da Catch nur eine Kopfzeile ist.
CMakeLists.txt (vorausgesetzt, Sie Ihre FindCatch.cmake an der richtigen Stelle [siehe unten] und die Tests in my_tests.cpp):
list(APPEND CMAKE_MODULE_PATH "${CMAKE_SOURCE_DIR}/cmake/Modules/")
find_package(Catch REQUIRED)
include_directories(${CATCH_INCLUDE_DIRS})
add_executable(my_tests my_tests.cpp)
add_test(NAME MyTests COMMAND my_tests)
Ein Beispiel my_tests.cav:
#define CATCH_CONFIG_MAIN // This tells Catch to provide a main()
#include "catch/catch.hpp"
#include "stuff_to_test.h"
TEST_CASE("A test case")
{
...
}
...
Sie benötigen einen FindCatch.cmake Modul zu einem Projekt unter cmake/Modules
hinzuzufügen. Durchsuchen Sie das Web nach FindCatch.cmake.
Schließlich können Sie die Tests mit make test
erstellen und ausführen.
EDIT: Alternativ können Sie Cmake herunterladen Fang von git während des Build nach these instructions von Catch Github haben. Dies erfordert jedoch eine Abhängigkeit von Git.
Es gibt einige Diskussionen über CMake in [Catch's Build System Dokumentation] (https://github.com/philesquared/Catch/blob/master/docs/build-systems.md#cmake). – phoenix