FindCxxTest¶
尋找 CxxTest 單元測試框架。
尋找 CxxTest 套件,並宣告一個輔助巨集,用於建立單元測試並將其與 CTest 整合。
輸入變數¶
CXXTEST_USE_PYTHON
自 1.3 版起已棄用。
僅在系統上偵測到 Python 和 Perl 時使用,以控制使用哪個 CxxTest 程式碼產生器。僅對 CxxTest 版本 3 有效。
在這個尋找模組的舊版本中,此變數控制是否使用 Python 測試產生器而不是 Perl 測試產生器,無論使用者安裝了哪種腳本語言。
CXXTEST_TESTGEN_ARGS
在 2.8.3 版中新增。
指定要傳遞給 CxxTest 程式碼產生器的選項清單。如果未定義,則會傳遞
--error-printer
。
結果變數¶
CXXTEST_FOUND
如果找到 CxxTest 框架則為 True
CXXTEST_INCLUDE_DIRS
CxxTest include 目錄的位置
CXXTEST_PERL_TESTGEN_EXECUTABLE
基於 Perl 的測試產生器
CXXTEST_PYTHON_TESTGEN_EXECUTABLE
基於 Python 的測試產生器
CXXTEST_TESTGEN_EXECUTABLE
在 2.8.3 版中新增。
實際使用的測試產生器(根據使用者偏好和系統中找到的直譯器選擇)
CXXTEST_TESTGEN_INTERPRETER
在 2.8.3 版中新增。
系統上 Perl 或 Python 可執行檔的完整路徑,在無法使用其 shebang 行執行腳本的平台上。
模組命令¶
- cxxtest_add_test¶
建立 CxxTest 執行器,並將其加入 CTest 測試套件
CXXTEST_ADD_TEST(<test_name> <gen_source_file> <input_files_to_testgen>...)
參數
test_name
測試的名稱
gen_source_file
將由 CxxTest 產生的產生來源檔名
input_files_to_testgen
包含要在此執行器中包含的 CxxTest::TestSuite 的標頭檔清單
範例用法¶
如果找到 CxxTest,以下範例將
在二元樹中,從目前來源目錄中的 "foo_test.h" 自動產生 foo_test.cc。
建立名為 unittest_foo 的可執行檔和測試。
find_package(CxxTest)
if(CXXTEST_FOUND)
include_directories(${CXXTEST_INCLUDE_DIR})
enable_testing()
CXXTEST_ADD_TEST(unittest_foo foo_test.cc
${CMAKE_CURRENT_SOURCE_DIR}/foo_test.h)
target_link_libraries(unittest_foo foo) # as needed
endif()
foo_test.h
包含
#include <cxxtest/TestSuite.h>
class MyTestSuite : public CxxTest::TestSuite
{
public:
void testAddition( void )
{
TS_ASSERT( 1 + 1 > 1 );
TS_ASSERT_EQUALS( 1 + 1, 2 );
}
};