我正在尝试使用Gtest进行单元测试。
我正在创建另一个项目,该项目包含要测试的原始项目(通过链接)的文件。在新项目中,我然后创建假实现和模拟我想要测试的函数或单元的附加依赖项。在原始项目的文件中,我使用#ifdef来包含原始依赖项或虚假实现
我面临的问题是我需要按特定顺序编译文件,以便在构建测试项目时包含虚假实现。 我在Windows 10上使用MCUXpresso与MinGW,GNU Builder
预测任何变通方法或方法来控制编译文件的顺序。
#ifdef IsTesting //This is part or original project, original header files
#include "Fake_dependency"
#else
#include "Original_Dependency"
#endif
然后在新项目中定义
#define IsTesting true // Part of Test_Project, followed by other code for testing
当我编译新项目或测试项目时,我需要将此变量定义为首先或早于我从原始项目链接的文件编译的文件
答案 0 :(得分:2)
您可以在测试项目的Build Configuration中添加定义,而不是在测试代码中定义IsTesting
。
转到属性 - > C / C ++一般 - >路径和符号 - >选择适当的语言(GNU C ++)并添加“IsTesting”(没有任何值)
如果您希望Eclipse正确获取已编译的代码(未编译的代码为灰色),则必须切换 属性 - > C / C ++一般 - >索引器 - >同时使用活动构建配置