这是我的 cmake 文件,它创建了只有单元测试的二进制文件:
cmake_minimum_required(VERSION 3.2)
set(MODULE_NAME UnitTests)
set (CMAKE_CXX_STANDARD 11)
find_package(GTest REQUIRED)
include_directories(${GTEST_INCLUDE_DIRS} ${CMAKE_CURRENT_SOURCE_DIR}/../MyProject)
set(SOURCE_EXE tests.cpp ../MyProject/SomeClass1.cpp ../MyProject/SomeClass2.cpp )
add_executable(${MODULE_NAME} ${SOURCE_EXE})
target_link_libraries(${MODULE_NAME} ${GTEST_LIBRARIES} pthread)
在测试cpp中:
#include "SomeClass1.h"
#include "SomeClass2.h"
#include <gtest/gtest.h>
using namespace std;
TEST(testcase1, test1)
{
SomeClass1 s1;
//test some functions from SomeClass1
}
TEST(testcase2, test1)
{
SomeClass2 s2;
//test some functions from SomeClass2
}
我使用 cmake 使用单元测试构建项目,然后使用 kcov 实用程序:
kcov /home/myuser/kcov/ UnitTests