mirror of
https://github.com/emilybache/GildedRose-Refactoring-Kata.git
synced 2026-10-16 19:05:05 +00:00
Introduce four CMake options to enable/disabled test variants or test frameworks
By default all four test variants (Catch2 vs. GTest and Approval vs. Unit) are enabled.
This commit is contained in:
1 parent
afd4627ee1
commit
784920714a
8 files changed
+127
-92
No files matched your search
+26
-20
@@ -1,29 +1,35 @@
|
||||
include(FetchContent)
|
||||
|
||||
FetchContent_Declare(
|
||||
googletest
|
||||
GIT_REPOSITORY https://github.com/google/googletest.git
|
||||
GIT_TAG v1.16.0
|
||||
GIT_SHALLOW TRUE
|
||||
)
|
||||
if (BUILD_APPROVAL_TESTS_WITH_GTEST OR BUILD_UNIT_TESTS_WITH_GTEST)
|
||||
FetchContent_Declare(
|
||||
googletest
|
||||
GIT_REPOSITORY https://github.com/google/googletest.git
|
||||
GIT_TAG v1.16.0
|
||||
GIT_SHALLOW TRUE
|
||||
)
|
||||
FetchContent_MakeAvailable(googletest)
|
||||
endif()
|
||||
|
||||
FetchContent_Declare(
|
||||
catch2
|
||||
GIT_REPOSITORY https://github.com/catchorg/Catch2.git
|
||||
GIT_TAG v3.8.0
|
||||
GIT_SHALLOW TRUE
|
||||
)
|
||||
if (BUILD_APPROVAL_TESTS_WITH_CATCH2 OR BUILD_UNIT_TESTS_WITH_CATCH2)
|
||||
FetchContent_Declare(
|
||||
catch2
|
||||
GIT_REPOSITORY https://github.com/catchorg/Catch2.git
|
||||
GIT_TAG v3.8.0
|
||||
GIT_SHALLOW TRUE
|
||||
)
|
||||
FetchContent_MakeAvailable(catch2)
|
||||
endif()
|
||||
|
||||
FetchContent_MakeAvailable(googletest catch2)
|
||||
if (BUILD_APPROVAL_TESTS_WITH_GTEST OR BUILD_UNIT_TESTS_WITH_GTEST)
|
||||
# Force Google Test to link the C/C++ runtimes dynamically
|
||||
set(gtest_force_shared_crt ON CACHE BOOL "" FORCE)
|
||||
|
||||
# Force Google Test to link the C/C++ runtimes dynamically
|
||||
set(gtest_force_shared_crt ON CACHE BOOL "" FORCE)
|
||||
# Disable building GMock
|
||||
set(BUILD_GMOCK OFF CACHE BOOL "" FORCE)
|
||||
|
||||
# Disable building GMock
|
||||
set(BUILD_GMOCK OFF CACHE BOOL "" FORCE)
|
||||
|
||||
# Do not install GTest
|
||||
set(INSTALL_GTEST OFF CACHE BOOL "" FORCE)
|
||||
# Do not install GTest
|
||||
set(INSTALL_GTEST OFF CACHE BOOL "" FORCE)
|
||||
endif()
|
||||
|
||||
add_subdirectory(cpp_catch2_approvaltest)
|
||||
add_subdirectory(cpp_catch2_unittest)
|
||||
|
||||
@@ -1,20 +1,22 @@
|
||||
set(TEST_NAME GildedRoseCatch2ApprovalTests)
|
||||
add_executable(${TEST_NAME})
|
||||
target_sources(${TEST_NAME} PRIVATE GildedRoseCatch2ApprovalTests.cc)
|
||||
target_include_directories(${TEST_NAME} PUBLIC ../third_party)
|
||||
target_link_libraries(${TEST_NAME} GildedRoseLib Catch2::Catch2 Catch2::Catch2WithMain)
|
||||
set_property(TARGET ${TEST_NAME} PROPERTY CXX_STANDARD 14)
|
||||
add_test(
|
||||
if (BUILD_APPROVAL_TESTS_WITH_CATCH2)
|
||||
set(TEST_NAME GildedRoseCatch2ApprovalTests)
|
||||
add_executable(${TEST_NAME})
|
||||
target_sources(${TEST_NAME} PRIVATE GildedRoseCatch2ApprovalTests.cc)
|
||||
target_include_directories(${TEST_NAME} PUBLIC ../third_party)
|
||||
target_link_libraries(${TEST_NAME} GildedRoseLib Catch2::Catch2 Catch2::Catch2WithMain)
|
||||
set_property(TARGET ${TEST_NAME} PROPERTY CXX_STANDARD 14)
|
||||
add_test(
|
||||
NAME ${TEST_NAME}
|
||||
COMMAND ${TEST_NAME}
|
||||
WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
|
||||
)
|
||||
|
||||
# Set compiler option /FC for Visual Studio to to make the __FILE__ macro expand to full path.
|
||||
# The __FILE__ macro is used by Catch2 to get the path to current test file.
|
||||
# Links:
|
||||
# * https://docs.microsoft.com/en-us/cpp/preprocessor/predefined-macros?view=vs-2019
|
||||
# * https://docs.microsoft.com/en-us/cpp/build/reference/fc-full-path-of-source-code-file-in-diagnostics?view=vs-2019
|
||||
if (MSVC)
|
||||
)
|
||||
|
||||
# Set compiler option /FC for Visual Studio to to make the __FILE__ macro expand to full path.
|
||||
# The __FILE__ macro is used by Catch2 to get the path to current test file.
|
||||
# Links:
|
||||
# * https://docs.microsoft.com/en-us/cpp/preprocessor/predefined-macros?view=vs-2019
|
||||
# * https://docs.microsoft.com/en-us/cpp/build/reference/fc-full-path-of-source-code-file-in-diagnostics?view=vs-2019
|
||||
if (MSVC)
|
||||
target_compile_options(${TEST_NAME} PRIVATE "/FC")
|
||||
endif()
|
||||
endif()
|
||||
endif()
|
||||
@@ -1,19 +1,21 @@
|
||||
set(TEST_NAME GildedRoseCatch2UnitTests)
|
||||
add_executable(${TEST_NAME})
|
||||
target_sources(${TEST_NAME} PRIVATE GildedRoseCatch2UnitTests.cc)
|
||||
target_link_libraries(${TEST_NAME} GildedRoseLib Catch2::Catch2 Catch2::Catch2WithMain )
|
||||
set_property(TARGET ${TEST_NAME} PROPERTY CXX_STANDARD 14)
|
||||
add_test(
|
||||
if (BUILD_UNIT_TESTS_WITH_CATCH2)
|
||||
set(TEST_NAME GildedRoseCatch2UnitTests)
|
||||
add_executable(${TEST_NAME})
|
||||
target_sources(${TEST_NAME} PRIVATE GildedRoseCatch2UnitTests.cc)
|
||||
target_link_libraries(${TEST_NAME} GildedRoseLib Catch2::Catch2 Catch2::Catch2WithMain )
|
||||
set_property(TARGET ${TEST_NAME} PROPERTY CXX_STANDARD 14)
|
||||
add_test(
|
||||
NAME ${TEST_NAME}
|
||||
COMMAND ${TEST_NAME}
|
||||
WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
|
||||
)
|
||||
|
||||
# Set compiler option /FC for Visual Studio to to make the __FILE__ macro expand to full path.
|
||||
# The __FILE__ macro is used by Catch2 to get the path to current test file.
|
||||
# Links:
|
||||
# * https://docs.microsoft.com/en-us/cpp/preprocessor/predefined-macros?view=vs-2019
|
||||
# * https://docs.microsoft.com/en-us/cpp/build/reference/fc-full-path-of-source-code-file-in-diagnostics?view=vs-2019
|
||||
if (MSVC)
|
||||
)
|
||||
|
||||
# Set compiler option /FC for Visual Studio to to make the __FILE__ macro expand to full path.
|
||||
# The __FILE__ macro is used by Catch2 to get the path to current test file.
|
||||
# Links:
|
||||
# * https://docs.microsoft.com/en-us/cpp/preprocessor/predefined-macros?view=vs-2019
|
||||
# * https://docs.microsoft.com/en-us/cpp/build/reference/fc-full-path-of-source-code-file-in-diagnostics?view=vs-2019
|
||||
if (MSVC)
|
||||
target_compile_options(${TEST_NAME} PRIVATE "/FC")
|
||||
endif()
|
||||
endif()
|
||||
@@ -1,20 +1,22 @@
|
||||
set(TEST_NAME GildedRoseGoogletestApprovalTests)
|
||||
add_executable(${TEST_NAME})
|
||||
target_sources(${TEST_NAME} PRIVATE GildedRoseGoogletestApprovalTests.cc)
|
||||
target_include_directories(${TEST_NAME} PUBLIC ../third_party)
|
||||
target_link_libraries(${TEST_NAME} GildedRoseLib gtest)
|
||||
set_property(TARGET ${TEST_NAME} PROPERTY CXX_STANDARD 11)
|
||||
add_test(
|
||||
if (BUILD_APPROVAL_TESTS_WITH_GTEST)
|
||||
set(TEST_NAME GildedRoseGoogletestApprovalTests)
|
||||
add_executable(${TEST_NAME})
|
||||
target_sources(${TEST_NAME} PRIVATE GildedRoseGoogletestApprovalTests.cc)
|
||||
target_include_directories(${TEST_NAME} PUBLIC ../third_party)
|
||||
target_link_libraries(${TEST_NAME} GildedRoseLib gtest)
|
||||
set_property(TARGET ${TEST_NAME} PROPERTY CXX_STANDARD 11)
|
||||
add_test(
|
||||
NAME ${TEST_NAME}
|
||||
COMMAND ${TEST_NAME}
|
||||
WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
|
||||
)
|
||||
|
||||
# Set compiler option /FC for Visual Studio to to make the __FILE__ macro expand to full path.
|
||||
# The __FILE__ macro can be used to get the path to current test file.
|
||||
# Links:
|
||||
# * https://docs.microsoft.com/en-us/cpp/preprocessor/predefined-macros?view=vs-2019
|
||||
# * https://docs.microsoft.com/en-us/cpp/build/reference/fc-full-path-of-source-code-file-in-diagnostics?view=vs-2019
|
||||
if (MSVC)
|
||||
)
|
||||
|
||||
# Set compiler option /FC for Visual Studio to to make the __FILE__ macro expand to full path.
|
||||
# The __FILE__ macro can be used to get the path to current test file.
|
||||
# Links:
|
||||
# * https://docs.microsoft.com/en-us/cpp/preprocessor/predefined-macros?view=vs-2019
|
||||
# * https://docs.microsoft.com/en-us/cpp/build/reference/fc-full-path-of-source-code-file-in-diagnostics?view=vs-2019
|
||||
if (MSVC)
|
||||
target_compile_options(${TEST_NAME} PRIVATE "/FC")
|
||||
endif()
|
||||
endif()
|
||||
@@ -1,19 +1,21 @@
|
||||
set(TEST_NAME GildedRoseGoogletestUnitTests)
|
||||
add_executable(${TEST_NAME})
|
||||
target_sources(${TEST_NAME} PRIVATE GildedRoseGoogletestUnitTests.cc)
|
||||
target_link_libraries(${TEST_NAME} GildedRoseLib gtest gtest_main)
|
||||
set_property(TARGET ${TEST_NAME} PROPERTY CXX_STANDARD 11)
|
||||
add_test(
|
||||
if (BUILD_UNIT_TESTS_WITH_GTEST)
|
||||
set(TEST_NAME GildedRoseGoogletestUnitTests)
|
||||
add_executable(${TEST_NAME})
|
||||
target_sources(${TEST_NAME} PRIVATE GildedRoseGoogletestUnitTests.cc)
|
||||
target_link_libraries(${TEST_NAME} GildedRoseLib gtest gtest_main)
|
||||
set_property(TARGET ${TEST_NAME} PROPERTY CXX_STANDARD 11)
|
||||
add_test(
|
||||
NAME ${TEST_NAME}
|
||||
COMMAND ${TEST_NAME}
|
||||
WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
|
||||
)
|
||||
|
||||
# Set compiler option /FC for Visual Studio to to make the __FILE__ macro expand to full path.
|
||||
# The __FILE__ macro can be used to get the path to current test file.
|
||||
# Links:
|
||||
# * https://docs.microsoft.com/en-us/cpp/preprocessor/predefined-macros?view=vs-2019
|
||||
# * https://docs.microsoft.com/en-us/cpp/build/reference/fc-full-path-of-source-code-file-in-diagnostics?view=vs-2019
|
||||
if (MSVC)
|
||||
)
|
||||
|
||||
# Set compiler option /FC for Visual Studio to to make the __FILE__ macro expand to full path.
|
||||
# The __FILE__ macro can be used to get the path to current test file.
|
||||
# Links:
|
||||
# * https://docs.microsoft.com/en-us/cpp/preprocessor/predefined-macros?view=vs-2019
|
||||
# * https://docs.microsoft.com/en-us/cpp/build/reference/fc-full-path-of-source-code-file-in-diagnostics?view=vs-2019
|
||||
if (MSVC)
|
||||
target_compile_options(${TEST_NAME} PRIVATE "/FC")
|
||||
endif()
|
||||
endif()
|
||||
@@ -4,9 +4,9 @@ target_sources(${TEST_NAME} PRIVATE GildedRoseTextTests.cc)
|
||||
target_link_libraries(${TEST_NAME} GildedRoseLib)
|
||||
set_property(TARGET ${TEST_NAME} PROPERTY CXX_STANDARD 11)
|
||||
add_test(
|
||||
NAME ${TEST_NAME}
|
||||
COMMAND ${TEST_NAME}
|
||||
WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
|
||||
NAME ${TEST_NAME}
|
||||
COMMAND ${TEST_NAME}
|
||||
WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
|
||||
)
|
||||
|
||||
# Set compiler option /FC for Visual Studio to to make the __FILE__ macro expand to full path.
|
||||
@@ -15,5 +15,5 @@ add_test(
|
||||
# * https://docs.microsoft.com/en-us/cpp/preprocessor/predefined-macros?view=vs-2019
|
||||
# * https://docs.microsoft.com/en-us/cpp/build/reference/fc-full-path-of-source-code-file-in-diagnostics?view=vs-2019
|
||||
if (MSVC)
|
||||
target_compile_options(${TEST_NAME} PRIVATE "/FC")
|
||||
target_compile_options(${TEST_NAME} PRIVATE "/FC")
|
||||
endif()
|
||||
Reference in new issue
Block a user