如何使用CppUnitTestFramework在Visual Studio本机C++单元测试中获取$(ProjectDir)路径?

Dar*_*nas 5 c++ unit-testing

我需要能够检索单元测试的项目目录路径,以便加载测试所需的一些文件.如果解决方案结构和绝对路径将来发生变化,我不想对其进行硬编码.

Dar*_*nas 7

好的,我就是这样做的:

  1. 在我的项目属性 - >配置 - > C/C++ - >预处理器中,我添加了这个预处理器定义 UNITTESTPRJ="$(ProjectDir)."

  2. 然后在我的cpp文件中我做了:

#define STRINGIFY(x) #x

#define EXPAND(x) STRINGIFY(x)

string s = EXPAND(UNITTESTPRJ);
s.erase(0, 1); // erase the first quote
s.erase(s.size() - 2); // erase the last quote and the dot
string my_project_dir = s;
Run Code Online (Sandbox Code Playgroud)

最后的愚蠢.是必要的,以逃避\"项目目录中的尾随.