Use Boost.Test for C++ in Visual Studio
Applies to: Visual Studio
Visual Studio for Mac
Visual Studio Code
In Visual Studio 2017 and later, the Boost.Test test adapter is integrated into the Visual Studio IDE. It’s a component of the Desktop development with C++ workload.

If you don’t have the Desktop development with C++ workload installed, open Visual Studio Installer. Select the Desktop development with C++ workload, then choose the Modify button.
Install Boost
Boost.Test requires Boost! If you don’t have Boost installed, we recommend that you use the Vcpkg package manager.
- Follow the instructions at Vcpkg: a C++ package manager for Windows to install vcpkg (if you don’t already have it).
- Install the Boost.Test dynamic or static library:
- Run vcpkg install boost-test to install the Boost.Test dynamic library. -OR-
- Run vcpkg install boost-test:x86-windows-static to install the Boost.Test static library.
- Run vcpkg integrate install to configure Visual Studio with the library and include paths to the Boost headers and binaries.
You have a choice in how to configure your tests within your solution in Visual Studio: You can include your test code in the project under test, or you can create a separate test project for your tests. Both choices have advantages and disadvantages.
Add tests inside your project
In Visual Studio 2017 version 15.6 and later, you can add an item template for tests into your project. Both the tests and your code live in the same project. You’ll have to create a separate build configuration to generate a test build. And, you’ll need to keep the tests out of your debug and release builds.
In Visual Studio 2017 version 15.5, no pre-configured test project or item templates are available for Boost.Test. Use the instructions to create and configure a separate test project.
Create a Boost.Test item

- To create a .cpp file for your tests, right-click on the project node in Solution Explorer and choose Add >New Item.
- In the Add New Item dialog, expand Installed >Visual C++ >Test. Select Boost.Test, then choose Add to add Test.cpp to your project.
The new Test.cpp file contains a sample test method. This file is where you can include your own header files and write tests for your app.
The test file also uses macros to define a new main routine for test configurations. If you build your project now, you’ll see a LNK2005 error, such as «_main already defined in main.obj.»
Create and update build configurations
- To create a test configuration, on the menu bar, select Build >Configuration Manager. In the Configuration Manager dialog, open the dropdown under Active solution configuration and choose New. In the New Solution Configuration dialog, enter a name such as «Debug UnitTests». Under Copy settings from select Debug, and then choose OK.
- Exclude the test code from your Debug and Release configurations: In Solution Explorer, right-click on Test.cpp and select Properties. In the Property Pages dialog, select All Configurations in the Configuration dropdown. Select Configuration Properties >General and open the dropdown for the Excluded From Build property. Select Yes, then choose Apply to save your changes.
- To include the test code in your Debug UnitTests configuration, in the Property Pages dialog, select Debug UnitTests in the Configuration dropdown. Select No in the Excluded From Build property, then choose OK to save your changes.
- Exclude the main code from your Debug UnitTests configuration. In Solution Explorer, right-click on the file that contains your main function and select Properties. In the Property Pages dialog, select Debug UnitTests in the Configuration dropdown. Select Configuration Properties >General and open the dropdown for the Excluded From Build property. Select Yes, then choose OK to save your changes.
- Set the Solution Configuration to Debug UnitTests, then build your project to enable Test Explorer to discover the method.
As long as the configuration name you create starts with the words «Debug» or «Release», the corresponding Boost.Test libraries get picked up automatically.
The item template uses the single-header variant of Boost.Test, but you can modify the #include path to use the standalone library variant. For more information, see Add include directives.
Create a separate test project
In many cases, it’s easier to use a separate project for your tests. You won’t have to create a special test configuration for your project. Or, exclude test files from Debug and Release builds.
To create a separate test project
- In Solution Explorer, right click on the solution node and choose Add >New Project.
- In the Add a new project dialog, choose C++, Windows, and Console in the filter dropdowns. Select the Console App template, then choose Next.
- Give the project a name and choose Create.
- Delete the main function in the .cpp file.
- If you’re using the single-header or dynamic library version of Boost.Test, go to Add include directives. If you’re using the static library version, then you have to do some additional configuration: a. To edit the project file, first unload it. In Solution Explorer, right-click the project node and choose Unload Project. Then, right-click the project node and choose Edit .vcxproj. b. Add two lines to the Globals property group as shown here:
. x86-windows-static true
Add include directives

- In your test .cpp file, add any needed #include directives to make your program’s types and functions visible to the test code. If you’re using a separate test project, typically, the program is on a sibling level in the folder hierarchy. If you type #include «../» , an IntelliSense window appears and enables you to select the full path to the header file. You can use the standalone library with:
#include
Or, use the single-header version with:
#include
The following example is sufficient for the test to be discoverable in Test Explorer:
#define BOOST_TEST_MODULE MyTest #include //single-header #include "../MyProgram/MyClass.h" // project being tested #include BOOST_AUTO_TEST_CASE(my_boost_test) < std::string expected_value = "Bill"; // assume MyClass is defined in MyClass.h // and get_value() has public accessibility MyClass mc; BOOST_CHECK(expected_value == mc.get_value()); >
Write and run tests
You’re now ready to write and run Boost tests. See the Boost test library documentation for information about the test macros. See Run unit tests with Test Explorer for information about discovering, running, and grouping your tests by using Test Explorer.
See also
Как установить boost c в Visual Studio 2019
Boost — это набор высококачественных библиотек, ускоряющих разработку на C++. Они включены в большинство дистрибутивов Linux, а некоторые из них уже являются частью стандартной библиотеки C++. В среде Windows их необходимо установить, чтобы воспользоваться ими.
Прежде чем мы начнем, вы можете прочитать мою предыдущую статью об установке компилятора C++ в Windows.
Установка
Поскольку я использую MinGW, я буду использовать gcc.
В это время вы можете пойти выпить чашечку кофе. Или, может быть, два.
По завершении компиляции перейдите по выбранному пути установки (осторожно! Это не та папка, в которую вы изначально распаковали исходный код). Вы найдете две папки: include и lib. Обе папки должны содержать файлы. Это означает, что вы закончили и готовы к этапу тестирования.
Если какая-либо из вышеупомянутых папок пуста, у нас проблемы. Общие проблемы возникают из-за выбора неправильного набора инструментов для компиляции, поэтому, если ваша папка lib пуста, попробуйте выбрать другой набор инструментов. Если ошибка не устранена, взгляните на вывод компиляции. Там должны быть показаны ошибки, особенно в последних строках вывода.
Тестирование
В среде IDE создайте файл с именем main.cpp и скопируйте в него следующий текст:
Пришло время компилировать (и связать)
Чтобы сообщить компилятору, где искать заголовки и библиотеки, необходимо выполнить следующие шаги. Обычно их можно выполнить, щелкнув правой кнопкой мыши проект и выбрав Свойства или Параметры.
Добавьте следующий путь в список включений:
Добавьте следующий путь в список дополнительных каталогов библиотеки
Важно: если вы используете Netbeans, вы должны ввести только /installation/path/lib (вы должны опустить C:). По очень странной причине Netbeans добавляет косую черту в начале параметра /L, используемого для компиляции (только когда он начинается с C:), что приводит к неизвестному пути. Это может быть исправлено в более поздних версиях.
Если вы используете компилятор gnu (то есть Cygwin или MinGW), вы также должны добавить определенную библиотеку в компоновщик. Если вы используете Microsoft Visual Studio, вы можете пропустить этот шаг, потому что он включает так называемую поддержку автоматического связывания. Но в моем случае мне нужно добавить следующую библиотеку в список моих библиотек, чтобы компоновщик работал без нареканий:
Это имя файла состоит из:
- Стандартный префикс lib. DLL не используют его.
- Имя библиотеки boost_regex.
- Набор инструментов, использованный для его компиляции, в моем случае mgw47, то есть MinGW версии 4.7.
- Тег многопоточности mt, указывающий, поддерживает ли библиотека многопоточность.
- Тег ABI, который может быть: d для отладки, s для статической компоновки или g, y, p, которые не рассматриваются в этом тексте.
- Тег версии.
- Расширение, которое может быть .lib или .a.
Вы готовы. Создайте программу.
Пора выполнять
Программа, которую вы только что скомпилировали (и связали), может анализировать текстовый файл в поисках строки, начинающейся с текста «Subject:». Итак, чтобы протестировать его, скопируйте и вставьте следующий текст в пустой текстовый файл и назовите его test.txt (сохраните его в папке, где находится ваш файл .exe):
Теперь из командной строки введите:
Если все сделано правильно, вы должны увидеть следующий текст:
Заключение
На этом этапе Boost должен быть готов на вашем компьютере с Windows. Я предлагаю вам прочитать об этой замечательной библиотеке, так как она может значительно облегчить вам жизнь.
Библиотеки Boost — одни из самых известных в мире C++.
Они содержат множество функций, но их не так просто использовать или даже понять.
Прежде всего, давайте попробуем установить его в нашу любимую операционную систему Windows 10.
И протестируйте его с помощью Visual Studio 2017 и Visual Studio 2019.
Готовы? Давайте сделаем это в этом руководстве по установке Boost для Windows 10.
Прежде всего
-
(не стесняйтесь использовать Visual Studio 2019, больше информации в этом руководстве) с двоичными файлами (boost_1_71_0-msvc-14.1-64.exe)
Обратите внимание на версию 14.1, которая соответствует MSVC 141, чтобы использовать ее с MSVC 2017.
Для MSVC 2019 сделайте то же самое, но с версией 14.2, что связано с MSVC 142, и загрузите версию Boost 1.77.0.
Настройка библиотек Boost
Скачивание и установка библиотек Boost
Библиотеки Boost обычно доступны напрямую, без создания чего-либо (только путем включения заголовков).
Но некоторые библиотеки необходимо создать, прежде чем их можно будет использовать.
Это относится, например, к библиотекам Boost.Python или Boost.Regex.
Эти библиотеки можно собрать самостоятельно, но, честно говоря, документация Boost не совсем ясна, а некоторые ссылки даже не работают.
Поэтому, чтобы избежать головной боли с неба, мы собираемся использовать двоичные файлы, загруженные непосредственно с SourceForge (ссылка выше).
Действительно, в ваших реестрах Windows ничего не изменится, только будет создан новый каталог с некоторыми файлами внутри.
Поэтому после загрузки исполняемого файла Windows покажет вам синее окно с сообщением о том, что это неопознанное приложение.
Нажмите «Подробнее» в конце этого сообщения, чтобы появилась кнопка «Выполнить в любом случае».
Для MVSC 2017 установите его в следующем месте:
Для MVSC 2019 установите его в следующем месте:
В этом каталоге теперь вы можете увидеть еще один с именем lib64-msvc-14.1/ (для MSVC 2017) или lib64-msvc-14.2 (для MSVC 2019), в котором есть встроенные библиотеки, и все это в среде x64.
Создание движка Boost.Build (b2) (дополнительная функция для этого руководства)
Если вы хотите создавать библиотеки из Boost по-своему, вам придется использовать инструмент Boost.Build.
Раньше он назывался bjam, а теперь называется b2.
Таким образом, эти два инструмента совершенно одинаковы, но последний представляет собой новую версию, используемую с Boost.Build.
При загрузке Boost с официального сайта b2 не устанавливается.
Вы должны сделать это самостоятельно.
На самом деле это довольно просто.
Откройте консоль из каталога Boost (в зависимости от вашей версии MSVC 141 или 142):
Затем введите следующую команду:
И через несколько секунд на вашей консоли появится это сообщение:
В том же каталоге теперь можно увидеть инструмент b2.exe.
Нам это пока не нужно, просто оставьте на будущее.
Переменные среды для Boost
Нам нужно установить переменные среды.
Поэтому добавьте 2 следующих пути для MSVC 2017:
- C:\soft\boost_1_71_0\
- C:\soft\boost_1_71_0\lib64-msvc-14.1\
И для MSVC 2019:
- C:\soft\boost_1_77_0\
- C:\soft\boost_1_77_0\lib64-msvc-14.2\
Если вы используете Windows 10, не так уж необычно использовать и Visual Studio.
Давайте настроим его на использование Boost.
Настройка Visual Studio
Набор инструментов платформы Visual Studio
Если ваш экземпляр Visual Studio уже был открыт, закройте его и снова откройте, чтобы получить новые модификации переменных среды.
Мы будем использовать Visual Studio 2017, поэтому версия двоичных файлов будет 14.1.
Или Visual Studio 2019 с двоичными файлами 14.2.
Действительно, каждая версия Visual Studio имеет собственный набор инструментов платформы.
- Visual Studio 2017 имеет набор инструментов платформы 14.1 (часто msvc-141)
- Visual Studio 2019 имеет набор инструментов платформы 14.2 (часто msvc-142)
Да, это довольно расплывчато и не так логично, но Miscrosoft — это Microsoft.
Поэтому загрузите версию, подходящую для вашей версии Visual Studio, иначе она не будет работать.
В любом случае, давайте настроим все эти инструменты.
Я позволю вам установить Visual Studio там, где вы хотите.
Нам просто нужно установить каталоги включения и библиотеки непосредственно из Visual Studio.
Начнем с создания консольного приложения Windows в Visual Studio.
Из Visual Studio > Файл > Новый проект > Установлено > Visual C++ > Рабочий стол Windows > Консольное приложение Windows.
Давайте назовем этот проект, например, так:
Настройка платформы проекта Visual Studio
Сейчас в первую очередь необходимо изменить платформу проекта в диспетчере конфигураций:
В Visual Studio > выберите файл BadprogTutorial.cpp > Проект > Свойства BadprogTutorial. > В правом верхнем углу щелкните Диспетчер конфигурации. нажмите кнопку > Изменить платформу активного решения с x86 на x64 > Закрыть.
Тогда на страницах свойств BadprogTutorial вверху по центру измените платформу с Win32 на x64.
Затем нажмите OK.
Вы можете остаться в режиме отладки или изменить его на выпуск (для нашего руководства это ничего не изменит).
Настройка Visual Studio для включения путей для Boost
Сначала настроим включения.
В Visual Studio > выберите файл BadprogTutorial.cpp > Проект > Свойства BadprogTutorial. > Свойства конфигурации > C/C++ > Общие > Дополнительные каталоги включения > Изменить > Добавьте следующую строку:
Установка путей библиотеки Visual Studio для Boost
Теперь нам нужно установить библиотеки.
То же самое, но с компоновщиком:
В Visual Studio > выберите файл BadprogTutorial.cpp > Проект > Свойства BadprogTutorial. > Свойства конфигурации > Компоновщик > Общие > Дополнительные каталоги библиотек > Изменить > Добавьте следующую строку:
В Visual Studio 2017 и более поздних версиях тестовый адаптер Boost.Test интегрирован в интегрированную среду разработки Visual Studio. Это компонент настольной разработки с рабочей нагрузкой C++.

Если у вас не установлена настольная разработка с рабочей нагрузкой C++, откройте установщик Visual Studio. Выберите рабочую нагрузку Разработка для настольных ПК с C++, затем нажмите кнопку Изменить.
Установить Boost
Boost.Test требует Boost! Если у вас не установлен Boost, мы рекомендуем использовать диспетчер пакетов Vcpkg.
Следуйте инструкциям на странице Vcpkg: менеджер пакетов C++ для Windows, чтобы установить vcpkg (если у вас его еще нет).
Установите динамическую или статическую библиотеку Boost.Test:
Запустите vcpkg install boost-test, чтобы установить динамическую библиотеку Boost.Test.
Запустите vcpkg install boost-test:x86-windows-static, чтобы установить статическую библиотеку Boost.Test.
Запустите vcpkg интегрировать установку, чтобы настроить Visual Studio с библиотекой и включить пути к заголовкам Boost и двоичным файлам.
У вас есть выбор, как настроить тесты в решении в Visual Studio: вы можете включить свой тестовый код в тестируемый проект или создать отдельный тестовый проект для своих тестов. Оба варианта имеют свои преимущества и недостатки.
Добавьте тесты в свой проект
В Visual Studio 2017 версии 15.6 и более поздних можно добавить в проект шаблон элемента для тестов. И тесты, и ваш код находятся в одном проекте. Вам нужно будет создать отдельную конфигурацию сборки для создания тестовой сборки. Кроме того, вам нужно исключить тесты из отладочных и выпускных сборок.
В Visual Studio 2017 версии 15.5 нет предварительно настроенных тестовых проектов или шаблонов элементов для Boost.Test. Используйте инструкции для создания и настройки отдельного тестового проекта.
Создать элемент Boost.Test
Чтобы создать файл .cpp для своих тестов, щелкните правой кнопкой мыши узел проекта в обозревателе решений и выберите «Добавить» > «Новый элемент».
В диалоговом окне «Добавить новый элемент» разверните «Установлено» > «Visual C++» > «Тест». Выберите Boost.Test, затем выберите Добавить, чтобы добавить Test.cpp в свой проект.

Новый файл Test.cpp содержит пример метода тестирования. В этот файл вы можете включить свои собственные заголовочные файлы и написать тесты для своего приложения.
В тестовом файле также используются макросы для определения новой основной процедуры для тестовых конфигураций. Если вы создадите свой проект сейчас, вы увидите ошибку LNK2005, такую как «_main уже определено в main.obj».
Создание и обновление конфигураций сборки
Чтобы создать тестовую конфигурацию, в строке меню выберите Сборка > Диспетчер конфигураций. В диалоговом окне диспетчера конфигураций откройте раскрывающийся список в разделе Активная конфигурация решения и выберите Создать. В диалоговом окне «Новая конфигурация решения» введите имя, например «Отладка модульных тестов». В разделе «Копировать параметры из» выберите «Отладка», а затем нажмите «ОК».
Исключите тестовый код из конфигураций отладки и выпуска. В обозревателе решений щелкните правой кнопкой мыши файл Test.cpp и выберите пункт Свойства. В диалоговом окне «Страницы свойств» выберите «Все конфигурации» в раскрывающемся списке «Конфигурация». Выберите «Свойства конфигурации» > «Общие» и откройте раскрывающийся список для свойства «Исключено из сборки». Выберите «Да», затем нажмите «Применить», чтобы сохранить изменения.
Чтобы включить тестовый код в конфигурацию отладки UnitTests, в диалоговом окне Страницы свойств выберите Отладка UnitTests в раскрывающемся списке Конфигурация. Выберите «Нет» в свойстве «Исключено из сборки», затем нажмите «ОК», чтобы сохранить изменения.
Исключите основной код из конфигурации отладки UnitTests. В обозревателе решений щелкните правой кнопкой мыши файл, содержащий основную функцию, и выберите пункт Свойства. В диалоговом окне «Страницы свойств» выберите «Отладка модульных тестов» в раскрывающемся списке «Конфигурация». Выберите «Свойства конфигурации» > «Общие» и откройте раскрывающийся список для свойства «Исключено из сборки». Выберите «Да», затем нажмите «ОК», чтобы сохранить изменения.
Установите для параметра Конфигурация решения значение Отладка модульных тестов, а затем создайте проект, чтобы обозреватель тестов мог обнаружить метод.
Если имя создаваемой вами конфигурации начинается со слов «Отладка» или «Выпуск», соответствующие библиотеки Boost.Test подбираются автоматически.
Создайте отдельный тестовый проект
Во многих случаях проще использовать для тестов отдельный проект. Вам не нужно будет создавать специальную тестовую конфигурацию для вашего проекта. Или исключите тестовые файлы из отладочных и выпускных сборок.
Чтобы создать отдельный тестовый проект
В обозревателе решений щелкните правой кнопкой мыши узел решения и выберите «Добавить» > «Новый проект».
В диалоговом окне «Добавить новый проект» выберите C++, Windows и Консоль в раскрывающихся списках фильтров. Выберите шаблон консольного приложения, затем нажмите «Далее».
Дайте проекту имя и нажмите «Создать».
Удалите основную функцию в файле .cpp.
Если вы используете версию Boost.Test с одним заголовком или динамической библиотекой, перейдите к разделу Добавление директив включения.Если вы используете статическую версию библиотеки, вам необходимо выполнить дополнительную настройку:
а. Чтобы отредактировать файл проекта, сначала выгрузите его. В обозревателе решений щелкните правой кнопкой мыши узел проекта и выберите Выгрузить проект. Затем щелкните правой кнопкой мыши узел проекта и выберите «Редактировать .vcxproj».
в. Сохраните и закройте файл *.vcxproj, а затем перезагрузите проект.
д. Чтобы открыть страницы свойств, щелкните правой кнопкой мыши узел проекта и выберите «Свойства».
т.е. Разверните C/C++ > Генерация кода, а затем выберите Библиотека времени выполнения. Выберите /MTd для отладки статической библиотеки времени выполнения или /MT для выпуска статической библиотеки времени выполнения.
ж. Разверните Линкер > Система. Убедитесь, что для параметра SubSystem установлено значение Console.
г. Нажмите OK, чтобы закрыть страницы свойств.
Добавить директивы include
Вы можете использовать автономную библиотеку с:
Или используйте версию с одним заголовком с:
Затем определите BOOST_TEST_MODULE .
Следующего примера достаточно, чтобы тест можно было обнаружить в обозревателе тестов:
Написание и запуск тестов
Теперь вы готовы писать и запускать тесты Boost. Информацию о тестовых макросах см. в документации по тестовой библиотеке Boost. Информацию об обнаружении, запуске и группировании тестов с помощью обозревателя тестов см. в разделе Запуск модульных тестов с помощью обозревателя тестов.
Библиотеки Boost поставляются в виде исходного кода. Хотя большинство библиотек состоят исключительно из файлов заголовков, которые можно использовать напрямую, некоторые библиотеки требуют компиляции. Чтобы максимально упростить установку, доступен автоматизированный процесс установки на основе Boost.Build. Вместо того, чтобы проверять и компилировать отдельные библиотеки по отдельности, Boost.Build автоматически устанавливает полный набор. Boost.Build можно использовать со многими операционными системами и компиляторами, и он может скомпилировать каждую отдельную библиотеку на основе соответствующих файлов конфигурации.
Для автоматической установки библиотек Boost с помощью Boost.Build используется программа командной строки bjam. Библиотеки Boost поставляют эту программу как исходный код, а не как исполняемый файл. Поэтому для сборки и установки библиотек Boost требуется два шага. После загрузки библиотек Boost перейдите в каталог Boost и введите в командной строке следующие команды:
Введите bootstrap в Windows и ./bootstrap.sh на других платформах, таких как Linux, чтобы скомпилировать bjam . Сценарий автоматически ищет компилятор C для сборки bjam .
Затем введите bjam в Windows и ./bjam на других платформах, чтобы начать установку библиотек Boost.
Вы используете bootstrap только один раз для сборки bjam . Однако вам может понадобиться использовать bjam чаще, потому что bjam поддерживает параметры командной строки для создания библиотек Boost разными способами. Если вы запустите bjam без каких-либо параметров командной строки, будет использоваться конфигурация по умолчанию. Поскольку конфигурация по умолчанию не всегда подходит, вам следует знать наиболее важные параметры командной строки:
Параметры командной строки stage и install указывают, устанавливаются ли библиотеки Boost в подкаталог с именем stage или они становятся доступными для всей системы. Значение systemwide зависит от операционной системы. В Windows целевой каталог — C:\Boost ; в Linux это /usr/local . Целевой каталог также можно указать с помощью параметра —prefix. Запуск bjam без параметров командной строки всегда означает этап .
Если bjam вызывается без параметров командной строки, он ищет подходящий компилятор C++. Конкретный компилятор можно выбрать с помощью параметра —toolset. Чтобы выбрать Visual C++ 2013 в Windows, вызовите bjam с —toolset=msvc-12.0 . Чтобы выбрать компилятор GCC в Linux, используйте —toolset=gcc .
Опция командной строки —build-type определяет, какие типы сборки библиотек создаются. По умолчанию для этого параметра установлено значение Minimum , что означает, что создаются только выпускные сборки. Это может стать проблемой для разработчиков, которые хотят создавать отладочные сборки своих проектов с помощью Visual C++ или GCC. Поскольку эти компиляторы автоматически пытаются скомпоновать отладочные сборки библиотек Boost, будет отображаться сообщение об ошибке. В этом случае для параметра —build-type должно быть установлено значение Complete для создания как отладочных, так и выпускных сборок библиотек Boost. Это может занять довольно много времени, поэтому по умолчанию не установлено значение «полный».
Библиотеки Boost, которые необходимо скомпилировать, доступны в Windows с именами файлов, которые содержат номера версий и различные токены. Они позволяют, например, определить, была ли библиотека собрана как вариант отладки или вариант выпуска. libboost_atomic-vc120-mt-gd-1_56 — такое имя файла. Эта библиотека была создана с помощью Visual C++ 2013. Она относится к библиотекам Boost 1.56.0. Это отладочный вариант, который можно использовать в многопоточных программах. С помощью параметра командной строки —layout можно указать bjam генерировать другие имена файлов. Например, если вы установите для него значение system, тот же файл будет называться libboost_atomic.В Linux система является настройкой по умолчанию. Если вы хотите, чтобы имена файлов в Linux совпадали с именами файлов, сгенерированными в Windows по умолчанию, задайте для параметра —layout значение versioned .
Чтобы создать как отладочную, так и выпускную сборки библиотек Boost с помощью Visual C++ 2013 и установить их в каталог D:\Boost , введите следующую команду:
bjam —toolset=msvc-12.0 —build-type=complete —prefix=D:\Ускоренная установка
Чтобы собрать их в Linux и установить в каталог по умолчанию, введите следующую команду:
bjam —toolset=gcc —build-type=полная установка
Существует множество других параметров командной строки, которые можно использовать для подробного указания того, как компилировать библиотеки Boost. Взгляните на следующую команду:
bjam —toolset=отладочная версия msvc-12.0 link=static runtime-link=общая установка
Параметры отладки и выпуска вызывают создание как отладочных, так и выпускных сборок. link=static создает только статические библиотеки. runtime-link=shared указывает, что библиотека времени выполнения C++ динамически подключается, что является параметром по умолчанию для проектов в Visual C++ 2013.
Читайте также:
- Обнаружен прерванный вирус, как удалить оперу
- Как сделать разную нумерацию в верхнем и нижнем колонтитулах в Word
- Как заменить первую цифру 8 на 7 в Excel
- Программа компьютерной графики
- Что такое прошивка компьютера
Использование Boost.Test для C++ в Visual Studio
Область применения:
Visual Studio Visual Studio для Mac
Visual Studio Code ![]()
В Visual Studio 2017 и более поздних версиях адаптер теста Boost.Test интегрирован в среду IDE Visual Studio. Это компонент рабочей нагрузки Разработка классических приложений на C++.

Если у вас не установлена рабочая нагрузка Разработка классических приложений на C++, откройте Установщик Visual Studio. Выберите рабочую нагрузку Разработка классических приложений на C++, а затем нажмите кнопку Изменить.
Установка Boost
Для Boost.Test требуется Boost. Если у вас не установлен Boost, рекомендуем воспользоваться диспетчером пакетов Vcpkg.
- Следуйте инструкциям в статье vcpkg: диспетчер пакетов C++ для Windows, чтобы установить диспетчер vcpkg (если у вас его еще нет).
- Установка динамической или статической библиотеки Boost.Test:
- Запустите vcpkg install boost-test , чтобы установить динамическую библиотеку Boost.Test. -ИЛИ-
- Запустите vcpkg install boost-test:x86-windows-static , чтобы установить статическую библиотеку Boost.Test.
- Выполните vcpkg integrate install , чтобы настроить в Visual Studio библиотеку и пути включения для заголовков и двоичных файлов Boost.
Вы можете выбрать способ настройки тестов в своем решении в Visual Studio: вы можете включить тестовый код в тестируемый проект или создать отдельный тестовый проект для проведения тестов. Оба варианта имеют свои преимущества и недостатки.
Добавление тестов в проект
В Visual Studio 2017 версии 15.6 и более поздних можно добавить шаблон элемента для тестов в проект. Тесты и код находятся в одном проекте. Для создания тестовой сборки потребуется создать отдельную конфигурацию сборки. И вам нужно будет следить за тем, чтобы в сборках отладки и выпуска тестов не было.
В Visual Studio 2017 версии 15.5 для Boost.Test нет предварительно настроенного тестового проекта или шаблонов элементов. Используйте инструкции для создания и настройки отдельного тестового проекта.
Создание элемента Boost.Test

- Чтобы создать CPP-файл для тестов, щелкните правой кнопкой мыши узел проекта в обозревателе решений и выберите пункт Добавить>Новый элемент.
- В диалоговом окне Добавление нового элемента последовательно разверните узлы Установлено>Visual C++>Тест. Выберите Boost.Test и затем Добавить, чтобы добавить Test.cpp в проект.
Новый файл Test.cpp содержит пример метода теста. В этот файл можно включить собственные файлы заголовков и записать тесты для приложения.
Этот тестовый файл также использует макросы для определения новой подпрограммы main для конфигураций тестов. Если выполнить сборку проекта сейчас, выводится ошибка LNK2005, например «_main уже определен в main.obj».
Создание и изменение конфигураций сборки
- Чтобы создать конфигурацию теста, в строке меню выберите Сборка>Диспетчер конфигураций. В диалоговом окне Диспетчер конфигураций выберите в раскрывающемся списке Активная конфигурация решения пункт Создать. В диалоговом окне Создание конфигурации решения введите имя, например «Debug UnitTests». В поле Копировать параметры из выберите Отладка, а затем нажмите кнопку ОК.
- Исключите тестовый код из конфигураций отладки и выпуска: в обозревателе решений щелкните правой кнопкой мыши файл Test.cpp и выберите пункт Свойства. В диалоговом окне Страницы свойств откройте раскрывающийся список Конфигурация и выберите Все конфигурации. Выберите Свойства конфигурации>Общие и откройте раскрывающийся список для свойства Исключено из сборки. Выберите Да, а затем нажмите кнопку Применить, чтобы сохранить изменения.
- Чтобы включить код теста в конфигурацию «Debug UnitTests», в диалоговом окне Страницы свойств выберите Debug UnitTests в раскрывающемся списке Конфигурация. Выберите Нет в свойстве Исключено из сборки и нажмите кнопку ОК для сохранения изменений.
- Исключите основной код из конфигурации «Debug UnitTests». В обозревателе решений щелкните правой кнопкой мыши файл, содержащий функцию main , и выберите пункт Свойства. В диалоговом окне Страницы свойств откройте раскрывающийся список Конфигурация и выберите Debug UnitTests. Выберите Свойства конфигурации>Общие и откройте раскрывающийся список для свойства Исключено из сборки. Выберите Да, а затем нажмите кнопку ОК, чтобы сохранить изменения.
- Выберите конфигурацию решения Debug UnitTests, а затем создайте проект, чтобы обозреватель тестов смог обнаружить этот метод.
При условии, что создаваемое имя конфигурации начинается со слова «Debug» или «Release», соответствующие библиотеки Boost.Test подбираются автоматически.
Шаблон элемента использует вариант Boost.Test с одним заголовком, но вы можете изменить путь в #include, чтобы указать автономный вариант библиотеки. Дополнительные сведения см. в разделе Добавление директив include.
Создание отдельного тестового проекта
Во многих случаях для тестов проще использовать отдельный проект. Вам не нужно будет создавать специальную конфигурацию теста для своего проекта. Или исключите тестовые файлы из сборок отладки и выпуска.
Создание отдельного тестового проекта
- В обозревателе решений щелкните узел решения правой кнопкой мыши и выберите пункты Добавить>Новый проект.
- В диалоговом окне Добавить новый проект выберите C++, Windows и Консоль в раскрывающихся списках фильтров. Выберите шаблон Консольное приложение и нажмите кнопку Далее.
- Присвойте проекту имя и нажмите кнопку Создать.
- Удалите функцию main из CPP-файла.
- Если вы используете версию Boost.Test с одним заголовком или динамическую версию библиотеки, перейдите к разделу Добавление директив #include. Если вы используете статическую версию библиотеки, вам нужно выполнить некоторые дополнительные настройки: a. Чтобы изменить файл проекта, сначала выгрузите его. В обозревателе решений щелкните узел проекта правой кнопкой мыши и выберите пункт Выгрузить проект. Затем щелкните правой кнопкой мыши узел проекта и выберите Изменить .vcxproj. b. Добавьте две строки в группу свойств Глобальные, как показано ниже:
. x86-windows-static true
Добавление директив include

- В CPP-файле теста добавьте необходимые директивы #include , чтобы типы и функции программы были доступны коду теста. Если вы используете отдельный тестовый проект, как правило, программа находится в иерархии папок на том же уровне. При вводе #include «../» открывается окно IntelliSense, в котором можно выбрать полный путь к файлу заголовка. Можно использовать автономную библиотеку с:
#include
Или использовать версию с одним заголовком с:
#include
Приведенного ниже примера достаточно для обнаружения теста в обозревателе тестов.
#define BOOST_TEST_MODULE MyTest #include //single-header #include "../MyProgram/MyClass.h" // project being tested #include BOOST_AUTO_TEST_CASE(my_boost_test) < std::string expected_value = "Bill"; // assume MyClass is defined in MyClass.h // and get_value() has public accessibility MyClass mc; BOOST_CHECK(expected_value == mc.get_value()); >
Написание и запуск тестов
Все готово к написанию и выполнению тестов Boost. Сведения о макросах тестов см. в документации по библиотеке Boost Test. Сведения об обнаружении, выполнении и группировании тестов с помощью обозревателя тестов см. в статье Выполнение модульных тестов с помощью обозревателя тестов.
См. также
Как установить библиотеку boost?
Доброго времени суток. Нужна помощь!
Хочу установить библиотеку boost. Во всех туториалах люди заходят в консольку Visual Studio Command Prompt (2010). Но проблема в том, что я не могу ее найти! Искать в винде пробовал — не нашел.
У меня экспресс-версия! Дело в этом?
Отслеживать
51.2k 86 86 золотых знаков 266 266 серебряных знаков 505 505 бронзовых знаков
задан 19 окт 2014 в 16:17
65 1 1 золотой знак 1 1 серебряный знак 4 4 бронзовых знака
3 ответа 3
Сортировка: Сброс на вариант по умолчанию
Библиотека boost — это набор частично компилируемых исходных кодов. В некоторых случаях ничего не нужно собирать, достаточно скачать с официального сайта дистрибутив, разместить в удобном месте и в настройках проекта указать пути.
У меня в специальной папке, где я храню библиотеки многоразового использования, лежит подпапка boost_1_56_0 . Рядом с нею еще ряд других более старых версий этой библиотеки.
В переменные среды (в windows это там же, где и PATH) я заношу переменную BOOST_ROOT , которая указывает на последнюю сборку. Т.е. как появится новая, я создам папку boost_1_XX_Y и переназначу эту переменную.
В настройках любых проектов мне достаточно указать $(BOOST_ROOT)\include — для доступа к headers, и $(BOOST_ROOT)\stage\lib32 / $(BOOST_ROOT)\stage\lib64 для доступа к конкретным библиотекам, нужной мне разрядности.
Поскольку boost автоматически выдает имена собираемым библиотекам, с учетом компиляторов, которыми они собираются, даже если у Вас разные компиляторы, бинарники удобно сбрасывать в одну папку, как указано выше.
- С Intel Compiler у Вас получатся libboost_name-iw-type-version.lib .
- С Visual Studio у Вас получатся libboost_name-vcXX-type-version.lib , где XX — версия компилятора visual studio (не студии, а именно компилятора).
- С MinGW с gcc у Вас получится libboost_name-gcc-type-version.lib , если мне не изменяет память.
При этом для сборки библиотек, которые необходимо собирать, необходимо выполнить одни и те же действия в консоли:
- Для Intel Compiler это будет в соответствующем Command Prompt.
- Для Visual Studio это будет в соответствующем Command Prompt.
- Для MinGW это будет в обычной консоли, если, конечно, путь к bin в MinGW у Вас добавлен в переменную среды PATH.
Действия надо выполнить одни и те же. Сначала bootstrap.bat , а потом b2 —help .
В хелпе b2 Вы увидите все варианты настройки сборки, чтобы собрать наиболее удобным Вам образом.
Строчка будет выглядеть так:
b2 параметр1 параметр2 параметр3 .
- toolset — его стоит указать, чтобы сборка производилась конкретным компилятором (gcc, intel, visual studio), причем можно указать и версию компилятора.
- variant, вид сборки, debug или release. Для разработки Вам понадобятся оба варианта.
- link — Вы выбираете, будет Ваш бинарный код обращаться в dll или содержать «в себе» все используемые алгоритмы.
- threading — честно говоря, плохо понимаю смысл этой директивы и всегда указываю multi. Редко мы пишем однопоточные приложения.
- runtime-link — то же, что и link, только для рантайма.
- address-model — параметр не указан в хелпе, но помогает выбрать архитектуру собираемых библиотек.
- stage/install, отличаются лишь тем, что install позволит «выгрузить» только нужное в отдельную папку, stage собирает всё туда, где оно есть. Если Вы не увлекаетесь изменениями исходников boost, stage Вам вполне подойдет.
В итоге получается что-то вроде вот такого:
b2 toolset=vc120 variant=debug link=shared threading=multi runtime-link=shared address-model=32 stage
Для дебага в x32 и такого:
b2 toolset=vc120 variant=release link=static threading=multi runtime-link=shared address-model=32 stage
Для релиза в x32.
Ждете около 40 минут, радуетесь результату. В случае проблем — гуглите, скорее всего уже тысячи людей сталкивались с Вашей проблемой, и ее решение — невнимательность или какие-то специфические настройки чего-нибудь. Например, при сборке boost python вылезает много warning-ов на MinGW из-за конфликта хедеров, подобные вещи можно разрулить в частном порядке.
Потратив 2 часа на то, чтобы один раз в этом разобраться, Вы никогда не будете зависеть ни от каких сторонних сборок, будете понимать, где у Вас что лежит, кто туда положил и т.п. В общем, это полезно.
ЗЫ: Command Prompt находится в Visual Studio Tools. Или посмотрите в VStudio_PATH\CommonXX\Tools\VsDevCmd.bat
