CppUnitTest 链接到 Windows 应用程序



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

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

错误

1 错误 LNK2019:未解析的外部符号"public: __thiscall DataManager::D ataManager(void)" (??0DataManager@@QAE@XZ) 引用于 功能"公共:无效__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);
        }
    };
}
我知道

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

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

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

最新更新