【发布时间】:2023-08-03 16:26:01
【问题描述】:
我正在尝试将 Google Test 集成到我的 Qt 项目中。我使用 Google Test 运行基本的 (EXPECT_EQ(1, 1)) 测试,但我很困惑如何将我的 Qt 项目(使用 qmake)集成到测试的 CMake 构建中。
Google Test 目前是使用他们的README 中推荐的CMakeLists.txt 添加的。我想添加我的本地 src 并构建到测试版本。我的 src 位于(相对于测试文件夹)../src/,我已经将 src 构建到(相对于测试文件夹)build/project-build/,但我相信它不会集成,因为该项目有 .pro。当我尝试将其集成为子目录时的错误:
CMake Error at CMakeLists.txt:31 (add_subdirectory):
The source directory
/home/project/src
does not contain a CMakeLists.txt file.
这就是我将它作为子目录和项目添加到我的CMakeLists.txt 的方式:
add_subdirectory(${CMAKE_CURRENT_BINARY_DIR}/../../src
${CMAKE_CURRENT_BINARY_DIR}/project-build
EXCLUDE_FROM_ALL)
在单独的CMakeLists.txt.in 中(类似于google test 的做法):
include(ExternalProject)
ExternalProject_Add(project
GIT_REPOSITORY "${CMAKE_CURRENT_BINARY_DIR}/../.."
GIT_TAG master
SOURCE_DIR "${CMAKE_CURRENT_BINARY_DIR}/../../src"
BINARY_DIR "${CMAKE_CURRENT_BINARY_DIR}/project-build"
CONFIGURE_COMMAND ""
BUILD_COMMAND ""
INSTALL_COMMAND ""
TEST_COMMAND ""
)
另外,如果这是测试项目的困难方法,请告诉我。我希望使用谷歌测试,但如果这不起作用可能会使用 Qt 测试。我对 C++ 和 C++ 单元测试相当陌生(熟悉 Java 和 JUnit)。非常感谢您的帮助,谢谢!
【问题讨论】:
标签: qt cmake googletest qmake