CppUnitTest ссылка на приложение Windows
Я пытаюсь связать свой собственный тестовый проект с существующим проектом в том же решении. В #include я пишу путь к заголовку класса, который пытаюсь проверить.
Когда я запускаю Test в Test Explorer, я получаю ошибку сборки:
Ошибка 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);
}
};
}
1 ответ
Вы должны добавить.lib файл DataManager к опции входного файла ссылки. Щелкните правой кнопкой мыши по проекту, перейдите к свойствам и выберите запись ввода компоновщика. Добавьте ваш.lib к дополнительным зависимостям, укажите путь при необходимости (или добавьте.lib-файл в ваш проект)
Я знаю, что сейчас 3 года, но для будущих гуглеров, пытающихся выяснить, как выполнить модульное тестирование своего исполняемого приложения Windows: не пытайтесь связать свой проект модульного тестирования с вашим исполняемым проектом. Это не будет работать (без настройки exe для экспорта его функций, и даже тогда это довольно сомнительно).
У вас есть несколько других вариантов. Вы можете либо добавить свои исходные модули (.cpp) в проект модульного тестирования напрямую, либо поместить исходные модули в статический или динамический библиотечный проект и связать как исполняемый файл, так и проекты модульного теста с библиотекой.