我正在尝试使用 QT Creator 进行单元测试。我尝试在 Linux 上执行此操作,效果非常好,但是当我开始在 Windows 中执行此操作时。我发现设置与我对 linux 所做的设置有很大不同。
现在,在我的 Windows QT Creator 中,我已经为我的项目设置了 gtest。一切都工作正常,直到我开始设置 googlemock。有人可以告诉我如何在 QT Creator 中设置 googlemock 吗? (窗口)
我在 .pro 文件的源代码中添加了一些 gmock 文件,就像我对 gtest 文件所做的那样。另外,我已经添加了一些库,例如 libgmock.a 和 libgmock_main.a。
这是 Qt 问题结果的图像
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();
}
最佳答案
我也遇到了同样的问题,建议您下载其他版本的gmock。就我而言,我使用 gmock 1.7.0。一些旧版本有一些问题/问题。只需遵循编译器告诉你的内容即可。
一步一步修复错误
关于qt - 将 Gmock 设置为 QT (Windows),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56983270/