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 包含目录的位置
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 );
}
};