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 );
   }
};