问题描述
所以我使用 gtest 进行单元测试。下面的测试用例只是创建了一个运行 Console.exe 的基本 Windows 进程:
TEST_F(testName,testCase) {
STARTUPINFO si;
PROCESS_informatION pi;
ZeroMemory(&si,sizeof(si));
si.cb = sizeof(si);
ZeroMemory(&pi,sizeof(pi));
// Start the child process.
if (!CreateProcess(
L"C:\\my-space\\my-stuffs\\c++\\openGL\\x64\\Debug\\Console.exe",// No module name (use command line)
NULL,// Command line
NULL,// Process handle not inheritable
NULL,// Thread handle not inheritable
FALSE,// Set handle inheritance to FALSE
0,// No creation flags
NULL,// Use parent's environment block
NULL,// Use parent's starting directory
&si,// Pointer to STARTUPINFO structure
&pi) // Pointer to PROCESS_informatION structure
)
{
printf("CreateProcess Failed (%d).\n",GetLastError());
}
// Wait until child process exits.
WaitForSingleObject(pi.hProcess,INFINITE);
// Close process and thread handles.
CloseHandle(pi.hProcess);
CloseHandle(pi.hThread);
}
Console.exe 只是打印出“hello,world”并等待直到有输入以便控制台可以关闭:
int main()
{
std::cout << "Hello World!\n";
int i;
std::cin >> i;
}
因此,当我在另一个文件的主函数中调试测试用例内容时,黑色控制台出现并且一切正常,但是当我将其放入 googletest 中的 TEST_F 时,控制台不会出现。不过,输出是存在的。
有人能告诉我这是如何工作的吗?提前致谢!
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)