Clion:Gtest TEST_F不适用于std :: cin

时间:2019-05-03 15:29:11

标签: c++ input googletest clion

我正在尝试在CLion + Gtest系统(MacOS 10.14.4)中发送输入值,但是我得到了无限的“加载图标”,并且无法在“运行”窗口中键入任何内容。

我使用教程创建了测试。普通测试可以完美地工作,只有 std :: cin 拒绝工作。 std :: cin 可以在测试框架之外工作,只需打开一个基本项目并立即使用它即可。对于这个简单的示例,我仅使用一个文件“ test.cpp”,因此未导入其他文件。

#include <gtest/gtest.h>
#include <iostream>

using testing::Eq;
using namespace std;

namespace {
    class basicTest : public testing::Test {
    public:
        basicTest() {
        }
    };


    TEST_F(basicTest, test1) {
        cout << "\nWrite a number here: " << endl;
        int i;
        cin >> i;
        cout << "You wrote " << i << endl;
    }
}

int main(int argc, char **argv) {
    ::testing::InitGoogleTest(&argc, argv);
    return RUN_ALL_TESTS();
}

运行此操作会产生以下结果:

图标一直在旋转,但是我无处可写输入。在我的原始代码中,第一个cout甚至没有输出,因此直到我用停止按钮将其终止之前,它只是一个空白屏幕。

及早停止会产生“进程以退出代码137完成(被信号9:SIGKILL中断)”,但我认为这无关紧要。

我没有尝试使用调试模式,因为它与我的MacOS版本不兼容(这是我最终要解决的另一个问题)。

0 个答案:

没有答案