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