微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

为什么在使用 gtest 时不显示 Windows 控制台?

如何解决为什么在使用 gtest 时不显示 Windows 控制台?

所以我使用 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 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?