Как создать файл данных сборки (bdf) в Parasoft?
Я пытаюсь использовать Parasoft C/C++ Test для контроля "Стандартов кодирования" в статических тестах. Я нашел только "Как создать bdf в проектах Makefile" в руководстве пользователя Parasoft.
Как я могу создать bdf для каждого проекта? Обязательно ли использование проекта makefile?
2 ответа
Спасибо за ваш ответ, Parasoft не является предполагаемой темой. Ответы стоят золота. Я не смог найти cpptesttrace. Есть cpptest и cpptestscan. Могут ли они быть? Я использую старую версию parasoft.
Ты прав. 'cpptesttrace' был добавлен в тестовой версии 9.4 Parasoft C++ (середина 2012 года), поэтому, скорее всего, вы используете версию 9.2 или более раннюю, где присутствовал только "cpptestscan".
Кстати, вот краткое объяснение программ внутри автономной установки теста C++ (не плагин Visual Studio):
- cpptest - запускает тестовый графический интерфейс C++ (на основе Eclipse) обычно для интерактивной работы на рабочем столе
- cpptestcli - драйвер командной строки теста C++, используемый для автоматизации статического анализа, например, запускаемый как задание Jenkins,
- cpptestscan - используется в качестве префикса для командной строки компилятора, чтобы захватить одну информацию о компиляции и добавить ее в файл BDF
- cpptesttrace - (начиная с Parasoft C++test 9.4) используется в качестве префикса для построения командной строки, для захвата всех команд компиляции и сохранения в файл BDF
Основное различие между cpptestscan и cpptesttrace заключается в том, что:
- cpptestscan должен был быть добавлен к каждой командной строке компиляции. Это означает, что cpptestscan может захватывать только одну компиляцию и сохранять по одной в BDF. Обычно это делалось перезаписью переменных make CC или CXX (с указанием компилятора, например, "cpptestscan g++ -c foo.c -o foo.o").
- Предполагалось, что cpptestrace будет добавлен один раз перед всей командой сборки и отслеживает дочерние процессы, вызываемые командой сборки. Запись всех процессов, распознаваемых как вызовы компилятора, хранилась в BDF.
cpptestscan нормально, если make-файл или скрипт сборки достаточно гибки, чтобы разрешить перезапись компилятора в командной строке, например
make CXX="cpptestscan g++" CC="cpptestscan gcc"
Обычно это возможно с проектами на основе. В случае пользовательских или автоматически созданных сценариев сборки все ставки отключены. Зачастую единственным вариантом было изменение сценариев сборки проекта, о которых люди обычно нервничают. В таких случаях может помочь cpptesttrace, поскольку он абсолютно не навязчив и может собирать информацию о сборке практически из любого процесса сборки.
Возвращаясь к первоначальному вопросу этого поста, если у вас есть несколько проектов:
- используя cpptestscan, вам нужно каким-то образом добавить префикс компилятора cpptestscan в сценарии сборки каждого проекта, чтобы создать соответствующий BDF
- используя cpptesttrace, вы можете запустить сборку для каждого проекта, добавив cpptesttrace перед командой сборки каждого проекта, чтобы создать соответствующий BDF. Последнее часто проще, но вам потребуется более новый тест C++ (последняя версия - 10.3).
Надеюсь, это поможет. Кстати: уточните у Parasoft, можете ли вы обновить тест C++.
Использование make-файлов не обязательно.
Parasoft C++test имеет инструмент под названием "cpptesttrace", который отслеживает процесс сборки и собирает вызовы компилятора для создания файла BDF.
cpptesttrace может использоваться с любым процессом сборки, будь то make, сценарий оболочки или даже сборка в IDE (в крайнем случае, если сборка из командной строки недоступна).
Как работает cpptesttrace:
- вам просто нужно добавить префикс вашей исходной командной строки к "cpptesttrace" и, возможно, пару опций, и запустить вашу обычную сборку
- убедитесь, что запущена полная перестройка (например, "make clean all"), чтобы убедиться, что BDF содержит информацию обо всех источниках, принадлежащих вашей сборке, и о том, как они компилируются
- cpptesttrace имеет встроенный набор поддерживаемых компиляторов, и вы можете увидеть исполняемые шаблоны компилятора, запустив 'cpptesttrace --cpptesttraceHelp'. Если ваше имя компилятора GNU GCC "необычное", вы можете переопределить шаблон, который ищет cpptesttrace.
- в случае проблем вы всегда можете обратиться в службу поддержки Parasoft
Пример 1:
Я приведу пример файла make:), но это может быть scons, jam, Python-скрипт или.bat: Предположим, моя полная сборка сделана так:
make clean all
Я могу запустить сборку следующим образом, используя cpptesttrace: cpptesttrace make clean all. Он будет отслеживать всю сборку и создавать файл BDF из прогона.
Пример 2:
Если ваша сборка представляет собой многоуровневый процесс со сценарием или вносит изменения в папки по пути, было бы хорошо сообщить cpptesttrace абсолютное местоположение для BDF. Расширяя приведенный выше пример, мы можем запустить:
cpptesttrace --cpptesttraceOutputFile=`pwd`/cpptest.bdf make clean all
что гарантирует, что путь BDF является абсолютным, независимо от того, на каком уровне дерева исходного кода вызывается cpptesttrace.