Я новичок как в vcpkg, так и в библиотеке Boost, и я изучал и пытался настроить инфраструктуру boost-unit-tests-framework на VS 2019, но все документы устарели.
Моя цель - запустить буст-тесты из проводника тестов в visual studio.
Vcpkg
- Клонировал Vcpkg и запустил bootstrap -vcpkg.bat
- Ран vcpkg интегрировать установку для настройки Visual Studio с библиотекой и включения путей к установленным пакетам
Компиляция тестов [Только отладка]
Следующее: ms-docs
- Установлен пакет буст-теста с использованием
vcpkg install boost-test:x64-windows-static
- Добавлены следующие элементы в
<PropertyGroup Label="Globals">
в моем проекте модульного тестирования:
<VcpkgTriplet>x64-windows-static</VcpkgTriplet>
<VcpkgEnabled>true</VcpkgEnabled>
- Установить C / C ++ -> Генерация кода -> Библиотека времени выполнения в
Multi-threaded Debug (/MTd)
- Добавлено Дополнительные каталоги включения ->
$(VcpkgRoot)include\
, который разрешается в C:\vcpkg\installed\x64-windows-static\include\
- Добавлен Linker -> Дополнительные каталоги библиотек ->
$(VcpkgRoot)debug\lib\
, который разрешает в C:\vcpkg\installed\x64-windows-static\debug\lib\
- добавлено компоновщик -> ввод -> дополнительные зависимости ->
boost_unit_test_framework-vc140-mt-gd.lib;boost_regex-vc140-mt-gd.lib;boost_exception-vc140-mt-gd.lib;boost_container-vc140-mt-gd.lib;%(AdditionalDependencies)
- добавлен тестовый код:
#define BOOST_TEST_MODULE MyTest
#include <boost/test/included/unit_test.hpp>
#include <string>
class MyClass
{
std::string m_name = "Jim";
public:
std::string get_value() const { return m_name; }
void set_value(std::string const &name) { m_name = name; }
};
BOOST_AUTO_TEST_CASE(my_boost_test)
{
std::string expected_value = "Bill";
MyClass mc;
BOOST_CHECK(expected_value == mc.get_value());
BOOST_TEST(expected_value == mc.get_value());
mc.set_value(expected_value);
BOOST_TEST(expected_value == mc.get_value());
}
Консольный запуск
Все работает нормально, выполняя тестовый exe из консоли:
VS Тестовый проводник
Ничего не отображается в тесте -explorer, даже если мой тестовый адаптер буста установлен ..
Кто-нибудь уже решил это ??
Одна найденная альтернатива - запустите test.exe как часть процесса сборки, как упоминается в boost-docs. Не совсем полезно для моей команды.