2

在尝试进行任何单元测试之前,我有一个目录

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 单元测试或正确的项目结构。

4

0 回答 0