В настоящее время я оцениваю среды модульного тестирования для нашей команды разработчиков и сталкиваюсь с проблемой, которую не могу понять, как ее решить.
Наше приложение построено с использованием Visual Studio 2017. Решение содержит 17 проектов.Большинство из них разработано другой командой (в основном сторонней библиотекой с нашей точки зрения), и большинство проектов создают файл dll.Один проект настроен на сборку исполняемого файла.
Это тот самый exe-проект, который я не могу протестировать.Я пробовал оба Boost :: Test и Google.Test.Когда я пытаюсь написать тесты, используя класс, определенный в одном из проектов dll, он работает как ожидалось.
Но когда я пытаюсь протестировать код из exe-проекта, я получаю ошибки компоновщика LNK2019 "Unresolved external symbol"для кода, определенного в проекте exe.Каталоги включения установлены правильно, тестовый проект ссылается на соответствующие другие проекты.Я в растерянности.
После некоторого онлайн-поиска и настройки новых тестовых решений я обнаружил две возможные причины:
- Невозможно протестировать код в проекте, производящемexe-файл
- Не удается протестировать код в проектах, скомпилированных с помощью __stdcall
Может ли это быть причиной ошибки компоновщика?И если да, то как мне исправить ошибку?