4.10 使用测试固件
准备工作
具体实施
# set minimum cmake version cmake_minimum_required(VERSION 3.5 FATAL_ERROR) # project name project(recipe-10 LANGUAGES NONE) # detect python find_package(PythonInterp REQUIRED) # define tests enable_testing()add_test( NAME setup COMMAND ${PYTHON_EXECUTABLE} ${CMAKE_CURRENT_SOURCE_DIR}/test/setup.py ) set_tests_properties( setup PROPERTIES FIXTURES_SETUP my-fixture ) add_test( NAME feature-a COMMAND ${PYTHON_EXECUTABLE} ${CMAKE_CURRENT_SOURCE_DIR}/test/feature-a.py ) add_test( NAME feature-b COMMAND ${PYTHON_EXECUTABLE} ${CMAKE_CURRENT_SOURCE_DIR}/test/feature-b.py ) set_tests_properties( feature-a feature-b PROPERTIES FIXTURES_REQUIRED my-fixture ) add_test( NAME cleanup COMMAND ${PYTHON_EXECUTABLE} ${CMAKE_CURRENT_SOURCE_DIR}/test/cleanup.py ) set_tests_properties( cleanup PROPERTIES FIXTURES_CLEANUP my-fixture )$ mkdir -p build $ cd build $ cmake .. $ ctest Start 1: setup 1/4 Test #1: setup ............................ Passed 0.01 sec Start 2: feature-a 2/4 Test #2: feature-a ........................ Passed 0.01 sec Start 3: feature-b 3/4 Test #3: feature-b ........................ Passed 0.00 sec Start 4: cleanup 4/4 Test #4: cleanup .......................... Passed 0.01 sec 100% tests passed, 0 tests failed out of 4$ ctest -R feature-a Start 1: setup 1/3 Test #1: setup ............................ Passed 0.01 sec Start 2: feature-a 2/3 Test #2: feature-a ........................ Passed 0.00 sec Start 4: cleanup 3/3 Test #4: cleanup .......................... Passed 0.01 sec 100% tests passed, 0 tests failed out of 3
工作原理
Last updated