EDIT2: te dni Catch2 instaluje własny moduł CUpewnij tak, po instalacji, można go używać w innym projekcie cmake z
include(GNUInstallDirs)
find_package(Catch2 REQUIRED)
Można zrobić swój projekt CUpewnij zależą połów korzystania find_package
. W ten sposób nie zaliczasz Catch siebie i możesz go aktualizować samodzielnie. Proces jest wyjaśniony w this recipe, z tym wyjątkiem, że nie musisz zajmować się bibliotekami, ponieważ Catch jest tylko nagłówkiem.
CMakeLists.txt (zakładając, że masz swoją FindCatch.cmake w miejscu [patrz niżej] i twoje testy w 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)
Przykładem my_tests.CPP:
#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")
{
...
}
...
Trzeba dodać FindCatch.cmake moduł do projektu, pod cmake/Modules
. Wyszukaj w internecie plik FindCatch.cmake.
Wreszcie, możesz zbudować i uruchomić testy z make test
.
EDIT: Ewentualnie można mieć cmake pobierania połowu z git podczas kompilacji, po these instructions z github złapać za. Wymaga to jednak zależności od git.
Istnieje dyskusja na temat CMake w dokumentacji [Catch's Build System] (https://github.com/philsquared/Catch/blob/master/docs/build-systems.md#cmake). – phoenix