将Gmock设置为QT(Windows)

将Gmock设置为QT(Windows),qt,googlemock,Qt,Googlemock,我正在尝试使用QT Creator进行单元测试。我试着用linux来做,效果非常好,但当我开始在Windows上做的时候。我发现设置与我对linux所做的不同 现在,在我的Windows QT Creator中,我已经为我的项目设置了gtest。在我开始建立googlemock之前,一切都很顺利。有人能告诉我如何在QT Creator中设置googlemock吗?(窗口) 我在.pro文件的源代码中添加了一些gmock文件,就像我对gtest文件所做的一样。另外,我已经添加了一些库,比如libg

我正在尝试使用QT Creator进行单元测试。我试着用linux来做,效果非常好,但当我开始在Windows上做的时候。我发现设置与我对linux所做的不同

现在,在我的Windows QT Creator中,我已经为我的项目设置了gtest。在我开始建立googlemock之前,一切都很顺利。有人能告诉我如何在QT Creator中设置googlemock吗?(窗口)

我在.pro文件的源代码中添加了一些gmock文件,就像我对gtest文件所做的一样。另外,我已经添加了一些库,比如libgmock.a和libgmock_main.a

这是问题结果的图像

INCLUDEPATH += "gtest/include/"
INCLUDEPATH += "gtest/"
INCLUDEPATH += "../../"
INCLUDEPATH += "gmock/include/gmock/"
INCLUDEPATH += "gmock/include/"
INCLUDEPATH += "gmock/"
INCLUDEPATH += "../../"
FORMS += \
    ../calculator.ui
HEADERS += \
    ../calculator.h \
    ../button.h
SOURCES += \
    ../calculator.cpp \
    ../button.cpp \
    main.cpp \
    gtest/src/gtest-typed-test.cc \
    gtest/src/gtest-test-part.cc \
    gtest/src/gtest-printers.cc \
    gtest/src/gtest-port.cc \
    gtest/src/gtest-filepath.cc \
    gtest/src/gtest-death-test.cc \
    gtest/src/gtest-all.cc \
    gtest/src/gtest.cc \
    gmock/src/gmock-spec-builders.cc \
    gmock/src/gmock-matchers.cc \
    gmock/src/gmock-cardinalities.cc \
    gmock/src/gmock-all.cc \
    gmock/src/gmock.cc \
    gmock/src/gmock-internal-utils.cc
win32:CONFIG(release, debug|release): LIBS += -L$$PWD/../../../Gmock_lib/ -lgmock_main
else:win32:CONFIG(debug, debug|release): LIBS += -L$$PWD/../../../Gmock_lib/ -lgmock_maind
else:unix: LIBS += -L$$PWD/../../../Gmock_lib/ -lgmock_main
INCLUDEPATH += $$PWD/../../../Gmock_lib
DEPENDPATH += $$PWD/../../../Gmock_lib
win32:CONFIG(release, debug|release): LIBS += -L$$PWD/../../../Gmock_lib/ -lgmock
else:win32:CONFIG(debug, debug|release): LIBS += -L$$PWD/../../../Gmock_lib/ -lgmockd
else:unix: LIBS += -L$$PWD/../../../Gmock_lib/ -lgmock
INCLUDEPATH += $$PWD/../../../Gmock_lib
DEPENDPATH += $$PWD/../../../Gmock_lib

main.cpp

#include <gtest/gtest.h>
#include <QApplication>
#include "Calculator/calculator.h"
#include "Calculator/button.h"
#include "Calculator/calculator.h"
#include <gmock/gmock.h>



TEST (sumInMemory, clearMemoryF) {
    calculator cal;
    double x = cal.sumInMemory;
       EXPECT_EQ( x , 0.0);
}

TEST (functionTest, Subtest1) {
    calculator cal;
   int x = cal.equalClicked();

   EXPECT_NE( x , -1);
}

TEST (functionTest, Subtest2) {
    calculator cal;
   double x = cal.factorSoFar;

   EXPECT_EQ( x , 0.0);
}


int main (int argc, char *argv[])
{
    QApplication a(argc, argv);
    ::testing::InitGoogleTest(&argc, argv);
            return RUN_ALL_TESTS();
}
#包括
#包括
#包括“Calculator/Calculator.h”
#包括“计算器/按钮.h”
#包括“Calculator/Calculator.h”
#包括
测试(sumInMemory、clearMemoryF){
计算器;
double x=cal.sumInMemory;
期望q(x,0.0);
}
测试(功能测试,子测试1){
计算器;
int x=cal.equalClicked();
期望(x,-1);
}
测试(功能测试,子测试2){
计算器;
双x=校准系数OFAR;
期望q(x,0.0);
}
int main(int argc,char*argv[])
{
质量保证申请a(argc、argv);
::测试::InitGoogleTest(&argc,argv);
返回运行所有测试();
}

我遇到了同样的问题,我建议您下载其他版本的gmock。在我的例子中,我使用gmock1.7.0。一些旧版本存在一些问题/问题。只要按照编译器对你说的去做就行了

一次修复一个错误

我的新.pro文件

QT       += core gui

greaterThan(QT_MAJOR_VERSION, 4): QT += widgets

CONFIG += console c++14

INCLUDEPATH += "gmock/include/"
INCLUDEPATH += "gmock/"
INCLUDEPATH += "gtest/include/"
INCLUDEPATH += "gtest/src/"
INCLUDEPATH += "gtest/"
INCLUDEPATH += "../../"

FORMS += \
    ../calculator.ui

HEADERS += \
    ../calculator.h \
    ../button.h \


SOURCES += \
    ../calculator.cpp \
    ../button.cpp \
    main.cpp \
    gtest/src/gtest.cc \
    gtest/src/gtest-all.cc \
    gtest/src/gtest-death-test.cc \
    gtest/src/gtest-filepath.cc \
    gtest/src/gtest-port.cc \
    gtest/src/gtest-printers.cc \
    gtest/src/gtest-test-part.cc \
    gtest/src/gtest-typed-test.cc
我的src文件中的项目是

gmock-spec-builders.cc
gmock-matchers.cc
gmock-internal-utils.cc
gmock-cardinalities.cc
gmock-all.cc
gmock-main.cc
gmock.cc
注意:我只在gtest中使用src和include,在测试文件中使用gmock。
我希望这能帮助其他人

为什么要将googlemock源代码和库都添加到项目文件中?“gmock all.cc”文件包括googlemock所需的所有源文件。除了gmock-all.cc之外,我删除了gmock库和googlemock源文件。仍然不起作用,sir@MathiasSchmidI添加了问题结果的图像。我希望这对你的形象没有帮助。你能提供你的来源或者一个最小的/精简的例子来说明你面临的失败结果吗?我还没有在main.cpp中添加一些与gmock相关的代码。每次我在main.cpp中添加一些“gmock/gmock.h”头文件时都会发生这种情况。我猜我的资料中有错误?我尝试了版本1.7.0,我更改了src和include的项目。我在GMock中看到了很多问题,那里的社区非常有限