1

我正在尝试将我的本机测试项目链接到同一解决方案中的现有项目。在#include 中,我正在编写我要测试的类的标题的路径。

当我在测试资源管理器中运行测试时,我得到构建错误:

错误 1 ​​错误 LNK2019:无法解析的外部符号“public: __thiscall DataManager::DataManager(void)”(??0DataManager@@QAE@XZ) 在函数“public: void __thiscall MyProject.Tests::UnitTest1::TestMethod1(void)”中引用" (?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);
        }

    };
}
4

2 回答 2

0

您应该将 DataManager .lib 文件添加到链接输入文件选项。右键单击项目,转到属性并选择链接器输入条目。将 .lib 添加到 Additional Dependencies,根据需要指定路径(或将 .lib 文件添加到项目中)

于 2016-04-23T13:35:32.017 回答
0

我知道这已经 3 岁了,但是对于未来试图弄清楚如何对他们的 Windows 可执行应用程序进行单元测试的谷歌人来说:不要试图将你的单元测试项目与你的可执行项目链接起来。它不起作用(没有设置 exe 来导出它的功能,即使这样也很值得怀疑)。

你还有其他几个选择。您可以将源模块 (.cpp) 直接添加到单元测试项目中,或者将源模块放入静态或动态库项目中,并将可执行文件和单元测试项目与库链接。

于 2019-03-24T23:52:06.420 回答