FindCxxTest¶
查找 CxxTest 单元测试框架。
查找 CxxTest 套件,并声明一个辅助宏,用于创建单元测试并将其与 CTest 集成。
输入变量¶
CXXTEST_USE_PYTHON
自版本 1.3 起已弃用。
仅当系统上同时检测到 Python 和 Perl 时使用,以控制使用哪个 CxxTest 代码生成器。仅对 CxxTest 版本 3 有效。
在此 Find 模块的旧版本中,此变量控制是否使用 Python 测试生成器而不是 Perl 测试生成器,而不管用户安装了哪种脚本语言。
CXXTEST_TESTGEN_ARGS
在版本 2.8.3 中添加。
指定要传递给 CxxTest 代码生成器的选项列表。如果未定义,则传递
--error-printer
。
结果变量¶
CXXTEST_FOUND
如果找到 CxxTest 框架,则为 True
CXXTEST_INCLUDE_DIRS
CxxTest 包含目录的位置
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)将
调用 testgen 可执行文件以从当前源目录中的 "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 );
}
};