【发布时间】:2017-07-26 01:26:12
【问题描述】:
假设您想对可执行文件中的类进行一些单元测试,但又不想将它们重构到一个库中,您可以在其中使用 cmake 中的target_link_libraries( target library ) 添加该库。
如何让测试类访问其他类?
1) 使用其他项目的源文件构建测试项目? 另一件事
include_directories(${otherExeProjectDir})
set( SOURCE_FILES
main.cpp
tests.h
tests.cpp
${otherExeProjectDir}/otherclass1.h
${otherExeProjectDir}/otherclass2.h
)
2) 将测试项目与来自其他项目的 obj 文件链接?
某种add_library( otherclass.obj ) 疯狂?
3)
【问题讨论】:
-
我不明白你的问题。假设您的项目中有一个类,现在您想对该类进行单元测试。您需要做的只是包含该类的头文件并编写单元测试和单元测试的主要功能。
-
两个项目:其他项目和测试项目。其他项目和测试项目一样有一个主要项目。如果我简单地包含它,测试项目将不知道在哪里寻找标题。
-
我不明白。为什么不能只包括它。你没看到它在哪里吗?
-
我说错了,如果您只是#include 一个标头,它仍然不知道实现在哪里,所以您最终会遇到 lnk2019 问题。
标签: c++ unit-testing cmake linker exe