【发布时间】:2014-08-06 00:57:50
【问题描述】:
我需要能够检索我的单元测试的项目目录路径,以便加载测试所需的一些文件。我不想硬编码,以防将来解决方案结构和绝对路径发生变化。
【问题讨论】:
标签: c++ unit-testing
我需要能够检索我的单元测试的项目目录路径,以便加载测试所需的一些文件。我不想硬编码,以防将来解决方案结构和绝对路径发生变化。
【问题讨论】:
标签: c++ unit-testing
好的,我就是这样做的:
在我的项目属性 -> 配置 -> C/C++ -> 预处理器中我添加了这个预处理器定义UNITTESTPRJ="$(ProjectDir)."
然后在我的 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;
最后的愚蠢的.是必要的,以逃避项目目录中尾随的\"。
【讨论】: