У меня есть проект VC ++, который имеет две конфигурации сборки, каждая из которых вызывает использование сторонней библиотеки. например, Release_A & Release_B использовать библиотеки A & B, и оберните их функциональность.
Мы используем набор модульных тестов boost.test, поэтому мы можем быть уверены, что обе версии работают одинаково, поэтому мы компилируем приложение test-suite для обеих build_configurations, чтобы получить test_A.exe & test_B.exe, и эти тесты выдают test_A.xml & test_B.xml.
Проблема в том, что тестовый XML никоим образом не различает, какая версия была протестирована, поэтому, когда мы перетаскиваем эти два XML-файла в такой инструмент, как Jenkins, невозможно определить, какая конфигурация виновата в каких-либо сбоях.
Есть какой-то аккуратный способ сделать это в коде C ++ testsuite?
Ну, я нашел простой ответ … установить препроцессор #define
в настройках проекта для каждой конфигурации сборки, и запекать это в BOOST_TEST_MODULE
определение.
например.:
#define BOOST_TEST_MODULE MyAppName(SOME_PREPROCESSOR_VAR)
Других решений пока нет …