Карта сайта Kansoftware
НОВОСТИУСЛУГИРЕШЕНИЯКОНТАКТЫ
Разработка программного обеспечения

Debugging the assertions

Boost , Boost.Test , Writing unit tests

Boost C++ Libraries

...one of the most highly regarded and expertly designed C++ library projects in the world. Herb Sutter and Andrei Alexandrescu, C++ Coding Standards

PrevUpHomeNext

Если вы наблюдаете сбой в единичных тестах и используете отладчик для определения причины, может быть очень трудно войти в выражение внутри утверждения.BOOST_TESTстроит дерево выражения перед его оценкой, функция «Шаг в» отладчика должна будет входить в каждый шаг построения дерева выражения раньше, вы можете перейти к оценке выражения.

Чтобы смягчить проблему, тестовый модуль может быть построен в режиме, который отключает строительство деревьев экспрессии внутри утверждений. В этом режиме первое, что делает утверждение, это с готовностью оценивает проверенное выражение. Вы включаете этот режим, определив символBOOST_TEST_TOOLS_UNDER_DEBUGGER(либо сили с опцией компилятора-Dдо включения любого изТестовые рамкиЗаголовок.

[Caution] Caution

При включенной жадной оценке выражений выражений оцениваютбуквально: это автоматически отключает любую специальную семантику, такую как толерантность к типам с плавающей точкой илибустер::test_tools::per_elementверсии сравнений последовательностей. Это может превратить преходящие утверждения в несостоятельные и наоборот. В случае ускорения::test_tools::per_elementсравнение последовательностей может привести к неправильной форме программы, если сравниваются последовательности разных типов.

Неприятности сBOOST_TEST_TOOLS_UNDER_DEBUGGERзаключается в том, что вы должны перекомпилировать тестовый модуль.Unit Test Frameworkдает вам еще один вариант компиляции двух версий утверждений и выбора той, которая будет использоваться динамически в зависимости от того, выполняется ли тестовый модуль под отладчиком или нет. Этот режим позволяет определять символ.BOOST_TEST_TOOLS_DEBUGGABLE(либо с#define, либо с опцией компилятора-Dдо включения любого изСистема испытаний блоковзаголовков.

Для того чтобы определить, работает ли тестовый модуль под отладчиком или нет, используется функцияboost::debug::under_debugger.

[Caution] Caution

В настоящее время функцияboost::debug::under_debuggerможет правильно обнаружить отладчик только на MSVC и нескольких вариантах Linux.


PrevUpHomeNext

Статья Debugging the assertions раздела Boost.Test Writing unit tests может быть полезна для разработчиков на c++ и boost.




Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.



:: Главная :: Writing unit tests ::


реклама


©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007
Top.Mail.Ru

Время компиляции файла: 2024-08-30 11:47:00
2025-05-20 05:44:18/0.0058000087738037/0