我在visual studio中有一个(qt)程序,我想创建(qt)单元测试。我认为最好的方法是在同一个Visual Studio解决方案中将单元测试放在一个单独的项目中,然后包含我想从另一个项目中测试的类。
但是,我为单元测试创建了第二个项目,当我从第一个项目中包含一个类并初始化它时,我得到一个链接器错误,如下所示:
#pragma once
class SimpleClass
{
public:
SimpleClass();
};
我已将.h和.cpp文件的目录添加到测试项目属性中的其他包含目录中,并且我已使用第一个项目中的exe添加.lib文件输出第二个项目属性的附加库目录,但这似乎没有修复此链接器错误并允许测试运行。为了让我的项目成功编译,我缺少什么?
作为参考,我的文件是:
SimpleClass.h(在项目1中):
#include "SimpleClass.h"
SimpleClass::SimpleClass()
{
}
SimpleClass.cpp(在项目1中):
#pragma once
#include <QTest>
class SimpleTest : public QObject
{
Q_OBJECT
private slots:
void testSimpleClass();
};
SimpleTest.h(在项目2中):
#include "SimpleTest.h"
#include "SimpleClass.h"
void SimpleTest::testSimpleClass()
{
SimpleClass *splClass = new SimpleClass();
}
SimpleTest.cpp(在项目2中):
#include <QtTest>
#include "testqstring.h"
#include "SimpleTest.h"
int main(int argc, char** argv) {
QApplication app(argc, argv);
TestQString testSuite1;
SimpleTest testSuite2;
return QTest::qExec(&testSuite1, argc, argv) | QTest::qExec(&testSuite2, argc, argv);
}
main.cpp(在项目2中):
{{1}}