Define CMake/CTest tests
Instead of copying the test executable and the JSON files used by the tests at install time, define CMake/CTest tests for running the json_unit executable from any build directory with the project's source directory as its working directory. - call enable_testing in the main lists file to allow the definition of tests - remove install commands from the test directory's lists file - define two tests - json_unit_default for running the default tests by executing json_unit without any arguments - json_unit_all for running all the tests by executing json_unit with the "*" argument - update the AppVeyor configuration file to use the new testing method
This commit is contained in:
parent
0a393b8374
commit
639d63217e
3 changed files with 16 additions and 11 deletions
|
@ -1,21 +1,25 @@
|
|||
# The unit test executable.
|
||||
add_executable(json_unit
|
||||
set(JSON_UNITTEST_TARGET_NAME "json_unit")
|
||||
add_executable(${JSON_UNITTEST_TARGET_NAME}
|
||||
"src/catch.hpp"
|
||||
"src/unit.cpp"
|
||||
)
|
||||
|
||||
set_target_properties(json_unit PROPERTIES
|
||||
set_target_properties(${JSON_UNITTEST_TARGET_NAME} PROPERTIES
|
||||
CXX_STANDARD 11
|
||||
CXX_STANDARD_REQUIRED ON
|
||||
COMPILE_DEFINITIONS "$<$<CXX_COMPILER_ID:MSVC>:_SCL_SECURE_NO_WARNINGS>"
|
||||
COMPILE_OPTIONS "$<$<CXX_COMPILER_ID:MSVC>:/EHsc;$<$<CONFIG:Release>:/Od>>"
|
||||
)
|
||||
|
||||
# Install the test binary.
|
||||
install(TARGETS json_unit RUNTIME DESTINATION test/bin)
|
||||
target_include_directories(${JSON_UNITTEST_TARGET_NAME} PRIVATE "src")
|
||||
target_link_libraries(${JSON_UNITTEST_TARGET_NAME} ${JSON_TARGET_NAME})
|
||||
|
||||
# Copy the test data to the install tree.
|
||||
install(DIRECTORY data/ DESTINATION test/data)
|
||||
|
||||
target_include_directories(json_unit PRIVATE "src")
|
||||
target_link_libraries(json_unit ${JSON_TARGET_NAME})
|
||||
add_test(NAME "${JSON_UNITTEST_TARGET_NAME}_default"
|
||||
COMMAND ${JSON_UNITTEST_TARGET_NAME}
|
||||
WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}
|
||||
)
|
||||
add_test(NAME "${JSON_UNITTEST_TARGET_NAME}_all"
|
||||
COMMAND ${JSON_UNITTEST_TARGET_NAME} "*"
|
||||
WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}
|
||||
)
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue