gpt4 book ai didi

c++ - 如何使用 CMake 在 C++ 代码中运行 gtest? (未见测试)

转载 作者:行者123 更新时间:2023-11-28 01:50:04 25 4
gpt4 key购买 nike

我在我的大学 C++ 项目中使用 CLion 在 Windows 上工作,并尝试添加一些示例测试代码。我已经包含了来自 GitHub 的最新 Google 测试框架。我有单独的源目录和测试目录。问题是编译器看不到测试。我得到信息“Empty test suite.”,虽然 main 函数被正确调用。

我的目录如下所示:

- root
- src
- tests
* tests/components/ColorTest.cpp
* gtest.cpp
* CMakeLists.txt
- CMakeLists.txt

代码如下:

CMakeLists.txt

cmake_minimum_required(VERSION 3.7)
project(SI_lab_2)

set(CMAKE_CXX_STANDARD 14)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=gnu++0x")

include_directories(src)
include_directories(tests)

add_subdirectory(src)
add_subdirectory(tests)

tests/CMakeLists.txt

cmake_minimum_required(VERSION 3.7)
project(tests)

add_subdirectory(lib/googletest)

enable_testing()

include_directories(${gtest_SOURCE_DIR_}/include ${gtest_SOURCE_DIR_})

set(SOURCE_FILES
gtest.cpp
tests/components/ColorTests.cpp)

add_executable(tests_run gtest.cpp)

target_link_libraries(tests_run gtest gtest_main)

add_test(eq tests_run)

测试/测试/组件/ColorTests.cpp

#include <gtest/gtest.h>

TEST(ColorTests, eq)
{
EXPECT_EQ(1, 0);
}

TEST(ColorTests, noteq)
{
EXPECT_NE(1, 0);
}

测试/gtest.cpp

#include <gtest/gtest.h>

int main(int argc, char* argv[])
{
::testing::InitGoogleTest(&argc, argv);
return RUN_ALL_TESTS();
}

希望你能帮上忙!

最佳答案

在您的 tests/CMakeLists.txt 中,您应该将 add_executable(tests_run gtest.cpp) 替换为 add_executable(tests_run ${SOURCE_FILES}) .您编写的测试未被编译,因为您忘记将其添加到 add_executable

关于c++ - 如何使用 CMake 在 C++ 代码中运行 gtest? (未见测试),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43379329/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com