在尝试进行任何单元测试之前,我有一个类似的目录
mything.h
mything.cpp
mything2.h
mything2.cpp
driver.cpp // contains main()
Makefile
然后我将make
并运行生成的可执行文件;该可执行文件在根目录中生成(称为runme
)。
现在,我正在尝试使用Catch2 https://github.com/catchorg/Catch2/blob/master/docs/Readme.md#top),它也说有一个带有主文件的测试文件(它们有一个定义)。因此,我将代码重新组织为
src/
mything.h
mything.cpp
mything2.h
mything2.cpp
driver.cpp // contains main()
test/
catch2.hpp // downloaded off their website in single header option
sometest.cpp // also contains a main per catch2
Makefile
我做了一些不参考实际代码的虚拟测试。现在,我执行make tester
和./tester
来运行所有测试。我可以执行make
和./runme
来运行原始应用程序。
我现在的问题是,如何实际从测试代码中调用源代码?我是否需要将此src
目录转换为库?也就是说,测试代码如何在c ++中引用src代码对我来说还不清楚。
为了全面披露,我来自python / pytest世界,想知道您实际上如何构造带有w.r.t的c ++代码。单元测试或适当的项目结构。