c++ - 用cmake分离googletest测试用例

标签 c++ unit-testing cmake googletest

我从事一个使用 CMake 构建的项目,该项目使用 Google 测试进行测试。我测试的 CMakeLists.txt 文件如下所示:

add_executable(run_tests
    testcase_a.cpp
    dependency_a.cpp
    testcase_b.cpp
    dependency_b.cpp
)
target_link_libraries(run_tests gtest gtest_main)

随着测试用例数量的增加,这变得相当困惑。我想分别编译每个测试用例,然后使用单个二进制文件运行它们。这可以使用 CMake 和 gtest_main 来完成吗?还是有我缺少的更好的方法?

最佳答案

这是基本的想法:-

add_library(testcase_a.o OBJECT testcase_a.cpp dependency_a.cpp)
add_library(testcase_b.o OBJECT testcase_b.cpp dependency_b.cpp)   
add_executable(run_tests $<TARGET_OBJECTS:testcase_a.o> $<TARGET_OBJECTS:testcase_b.o>)
target_link_libraries(run_tests gtest gtest_main)

参见 Object Libraries

关于c++ - 用cmake分离googletest测试用例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35322769/

相关文章:

java - 使用 Eclipse 创建新的 JUnit 测试用例

c++ - 编写数据结构以对每个线程使用不同的缓存行以避免线程抖动?

c++ - 从 arduino 读取到 c++ 程序时保持接收 NULL

c++ - rapidjson::std::pair 中的文档

c - 可执行文件在启动时说 "line 1: ELF: not found"

cmake - 如何在列表中的所有文件名前面添加公共(public)路径?

CMAKE_SYSTEM_PROCESSOR 似乎是空的。与操作系统无关的最佳策略是什么?

c++ - 模板函数不会编译

c# - 设置 Mock 以重定向到重载方法

javascript - `nyc mocha`没有覆盖率数据