Visual studio 指向Windows应用程序的CppUnitTest链接
我正在尝试将本机测试项目链接到同一解决方案中的现有项目。 在#include中,我正在编写要测试的类的头的路径 在测试资源管理器中运行测试时,出现生成错误: 错误1错误LNK2019:未解析的外部符号“public:\u thiscall” DataManager::DataManager(无效)“(??0DataManager@@QAE@XZ)引用于 函数“public:void\u thiscall” MyProject.Tests::UnitTest1::TestMethod1(无效)” (?TestMethod1@UnitTest1@MyProjectTests@@QAEXXZ)D:\Documents\VisualStudio2013\Projects\MyProject\MyProject.Tests\DataManagerTests.obj MyProject.Tests 我找到了不同的例子,说明如何将本机测试项目链接到.dll项目或静态库,而不是Windows应用程序 我会非常感谢你的帮助Visual studio 指向Windows应用程序的CppUnitTest链接,visual-studio,microsoft-cpp-unit-test,Visual Studio,Microsoft Cpp Unit Test,我正在尝试将本机测试项目链接到同一解决方案中的现有项目。 在#include中,我正在编写要测试的类的头的路径 在测试资源管理器中运行测试时,出现生成错误: 错误1错误LNK2019:未解析的外部符号“public:\u thiscall” DataManager::DataManager(无效)“(??0DataManager@@QAE@XZ)引用于 函数“public:void\u thiscall” MyProject.Tests::UnitTest1::TestMethod1(无效)”
#include "stdafx.h"
#include "CppUnitTest.h"
#include "D:/Documents/VisualStudio2013/Projects/MyProject/DataManager.h"
using namespace Microsoft::VisualStudio::CppUnitTestFramework;
namespace VideoFaceRecognitionIPCATests
{
TEST_CLASS(UnitTest1)
{
public:
TEST_METHOD(TestMethod1)
{
DataManager dataManager = DataManager();
Assert::AreEqual(0, 0);
}
};
}
您应该将DataManager.lib文件添加到链接输入文件选项中。右键单击项目,转到属性并选择链接器输入条目。将.lib添加到其他依赖项中,如果需要,指定路径(或将.lib文件添加到项目中)您应该将DataManager.lib文件添加到链接输入文件选项中。右键单击项目,转到属性并选择链接器输入条目。将你的.lib添加到其他依赖项中,如果需要,指定路径(或者将.lib文件添加到你的项目中)我知道这已经3年了,但是对于未来的谷歌用户来说,他们试图弄清楚如何对他们的Windows可执行应用程序进行单元测试:不要尝试将你的单元测试项目与你的可执行项目链接起来。它不会工作(如果不设置exe来导出它的函数,即使这样,它也很有问题)
你还有两个选择。您可以直接将源模块(.cpp)添加到单元测试项目中,也可以将源模块放入静态或动态库项目中,并将可执行文件和单元测试项目与库链接起来。我知道这已经3年了,但对于未来试图弄清楚如何对其Windows可执行应用程序进行单元测试的谷歌用户来说:不要试图将单元测试项目与可执行项目链接起来。它不会工作(如果不设置exe来导出它的函数,即使这样,它也很有问题)
你还有两个选择。您可以直接将源模块(.cpp)添加到单元测试项目中,也可以将源模块放入静态或动态库项目中,并将可执行文件和单元测试项目与库链接。您是指MyProject的lib文件吗?DataManager是我想测试的类。顺便说一句,我在MyProject文件夹中找不到任何库文件。我假设DataManager项目是静态或动态库项目。这将生成一个需要在单元测试项目中引用的.lib文件。您是指MyProject的lib文件吗?DataManager是我想测试的类。顺便说一句,我在MyProject文件夹中找不到任何库文件。我假设DataManager项目是静态或动态库项目。这将生成一个需要在单元测试项目中引用的.lib文件。