如何使用CppUnitTestFramework在Visual Studio本地c++单元测试中获得$(ProjectD

How to get the $(ProjectDir) path in a Visual Studio native C++ Unit Testing using CppUnitTestFramework?

本文关键字:ProjectD 单元测试 c++ CppUnitTestFramework 何使用 Visual 本地 Studio      更新时间:2023-10-16

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

好的,我是这样做的:

  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;

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