Mar*_*cze 5 c++ unit-testing visual-studio visual-c++
我在Visual Studio(2012)中有一个本机C ++单元测试项目。
在我的一项测试中,我想读取单元测试项目中包含的文件。可能吗?我应该设置文件的哪些属性以及应该使用什么路径?
我在项目中添加了一个test.txt文件(并尝试将其Content属性设置为true)。在单元测试中,我尝试使用如下相对路径打开文件:
std::ifstream file("text.txt");
Run Code Online (Sandbox Code Playgroud)
但这行不通。
我猜应该将文件复制到运行单元测试的位置。有一个简单的解决方案吗?
这可以通过使用__FILE__宏来完成,就我而言,我确实是这样的:
//Returns my solution's directory
#define TEST_CASE_DIRECTORY GetDirectoryName(__FILE__)
string GetDirectoryName(string path){
const size_t last_slash_idx = path.rfind('\\');
if (std::string::npos != last_slash_idx)
{
return path.substr(0, last_slash_idx + 1);
}
return "";
}
TEST_METHOD(MyTest)
{
string filename = std::string(TEST_CASE_DIRECTORY) + "MyTestFile.txt";
TestOutputForFile(filename);
}
Run Code Online (Sandbox Code Playgroud)