我将gtest src
放入我的项目文件夹中,如下所示,并希望在VS中调试测试用例。
│ CMakeLists.txt
│
├─google test source code
│
├─src
│ │ CMakeLists.txt
│ └─ CObject.h
│
└─UnitTest
TCObject.cpp
一切都很好,我使用Cmake
生成VS项目文件并在Visual Studio 2015
中打开它.CmakeLists.txt如下所示
PROJECT (BVH)
cmake_minimum_required(VERSION 3.00)
SET(CMAKE_INSTALL_PREFIX ${PROJECT_SOURCE_DIR})
INSTALL(DIRECTORY src/shaders DESTINATION build/bin)
INSTALL(DIRECTORY scene DESTINATION build/bin)
ADD_SUBDIRECTORY(src bin)
################################
# GTest
################################
ADD_SUBDIRECTORY (googletest)
ENABLE_TESTING()
INCLUDE_DIRECTORIES(${gtest_SOURCE_DIR}/include ${gtest_SOURCE_DIR})
################################
# Unit Tests
################################
# Add test cpp file
INCLUDE_DIRECTORIES($ENV{GLM})
ADD_EXECUTABLE( runUnitTests UnitTest/TCObject.cpp )
# Link test executable against gtest & gtest_main
TARGET_LINK_LIBRARIES(runUnitTests gtest gtest_main )
ADD_TEST( runUnitTests runUnitTests )
这是我的测试用例
#include<gtest/gtest.h>
#include"../src/CObject.h"
#include<glm/glm.hpp>
TEST(TestCObject,TestInitial){
CCube *cube=new CCube(glm::vec3(1,2,3),2);
EXPECT_EQ(2,cube->bounds.pMax[0]);
}
问题1:如果我将gtest和gtest_main的运行时库设置为MDd
而不是它自己的MTd
,我只能运行我的测试用例},我不知道将来是否有任何问题
问题2:如果我选择设置断点并对其进行调试,则窗口只是闪烁并消失。仅当我更改BUILD_SHARED_LIBRARIES
的cmake选项gtest
并复制{ {1}}文件到我的可执行测试文件所在的位置,然后我可以调试我的测试用例
但问题是我必须每次都复制dll
文件。所以我想知道是否有在静态库中调试的方法(问题1)或者我可以设置gtest的目标空间以到达我的testfile找到的位置(问题) 2)