c++ - 如何在基于 CMake 的项目中使用 Boost.Test?

标签 c++ boost cmake boost-test

我的项目使用 CMake 作为其构建系统,我希望它执行我的 Boost.Test 测试用例。

我怎样才能做到这一点?在 Boost.Build 中,我可以这样做:

import testing ;

use-project /my_lib : ../src ;

unit-test my_test
          : my_test.cpp
            /my_lib
          boost_unit_test_framework
        ;

lib boost_unit_test_framework ;

最佳答案

CMake 本身只是一个构建系统; CTest 是一个与 CMake 集成的公正测试运行器。单元测试框架也不是。这项工作可以由 Boost.Test 或 googletest 完成。

要在 CMake 项目中使用基于 Boost.Test 的单元测试程序,您首先需要使用 add_executabletarget_link_libraries 构建 CMake 并链接您的单元测试二进制文件> 在您的 CMakeLists.txt 脚本中。然后,您可以将单元测试二进制文件添加到测试列表中,以便 CTest 使用 enable_testingadd_test 运行。

如果您想变得真正花哨,您可以查看 CMake 文档,了解如何让 CMake 搜索您的所有源文件以自动查找和构建单元测试,但首先要做的是...

关于c++ - 如何在基于 CMake 的项目中使用 Boost.Test?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4299326/

相关文章:

c++ - 无法在 setAttribute 中传递字符串

c++ - boost::program_options 总是用空值解析命令行

c - 链接到静态库的多个版本

c++ - 在未初始化的对象上使用 std::bind 是否安全?

c++ - Maven nar 构建中的 GoogleTest 编译错误 - 未定义对`testing::internal::MakeAndRegisterTestInfo 的引用

c++ - C++ 中的派生类型转换问题

C++ Boost,在类中使用thread_group

c++ - 在 C++Builder 中使用 boost::regex 提取双引号

c++ - 已安装 ExternalProject 后避免使用 CMake 子命令

C++ 共享库定义和取消定义功能