Visual studio 指向Windows应用程序的CppUnitTest链接

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中,我正在编写要测试的类的头的路径

在测试资源管理器中运行测试时,出现生成错误:

错误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应用程序

我会非常感谢你的帮助

#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文件。