在尝试进行任何单元测试之前,我有一个目录
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)它还说有一个带有 main 的测试文件(他们有一个定义它)。所以我将我的代码重组为
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 世界,想知道您如何实际构建 c++ 代码 wrt 单元测试或正确的项目结构。