我想在一个 monorepo 中使用测试框架Catch2,其中将有许多组件,每个组件都有自己的测试。我想使用 CMake 来定义所有构建目标。
Catch2提供了一种简单的方法来生成一个通用main()
函数,该函数将运行链接到应用程序的所有测试。源文件(我称之为test_main.cpp
)就是这两行:
#define CATCH_CONFIG_MAIN
#include "catch.hpp"
我想test_main.cpp
在我的源代码树中只有一个副本,并从每个包含测试的组件目录中引用它(最终将有数百个目录)。
如果我复制了 CMake,我可以看到如何设置 CMake 以使其工作,test_main.cpp
以便在每个带有测试的目录中都存在冗余副本,但我还没有弄清楚如何只有一个副本。有没有我忽略的简单技巧?