C ++ Jenkins Стек QA / Инструменты

В настоящее время мы создаем стек контроля качества для разработчиков C ++.

У нас уже есть несколько запущенных экземпляров Jenkins, и мы очень хорошо поработали с сервером CI в сочетании с другими языками, такими как java и php.

Я прошу указатели на цепочки инструментов, которые можно использовать для разработки на C ++ с Jenkins.

Более конкретно (примеры java / php в фигурных скобках):

  • Инфраструктура модульного тестирования, которая тестирует и создает отчеты о покрытии (jUnit / phpUnit)
  • средство проверки рекомендаций по кодированию (checkstyle / phpCodeSniffer)
  • Что-то PMD, которое обнаруживает потенциальные проблемы в базе кода (pmd / phpmd)
  • Больше, если применимо / необходимо, но эти 3 будут основными, я думаю?

Редактирование награды:

Хотя я получил приемлемый ответ на свой вопрос, меня попросили предоставить дополнительные инструменты / варианты / причины для использования Jenkins для этого проекта.

В прошлом у меня был неоптимальный опыт использования коммерческих инструментов в этом отношении. (Что? Вы хотите СОХРАНИТЬ! Эти отчеты? Тогда вам нужно купить дополнительный плагин 10k Bucks / Year, который может генерировать для вас необычные ГРАФИКИ!). Я могу ошибаться здесь, поэтому, пожалуйста, скажите мне, если я.

Но в основном я ищу полный набор инструментов для использования с Jenkins для разработки на C ++ и контроля качества


person edorian    schedule 01.09.2011    source источник


Ответы (3)


Мы используем Jenkins с C и C ++. Это инструменты, которые мы использовали, и я думаю, что вы можете найти их полезными. Все они могут использоваться с Jenkins:

  • Платформа модульного тестирования - cppunit: выводит xml, который можно передать непосредственно в Jenkins, используя плагин cppunit
  • Покрытие: gcov + gcovr создает хорошие отчеты о покрытии.
  • Средство проверки рекомендаций по кодированию: для этого можно использовать pclint и плагин предупреждений.
  • Детектор сообщений: не уверен, что вы имеете в виду под беспорядком, но мы используем PMD / CPD для проверки дублирования кода и NSIQ для сложности и LOC

Мы также используем cppcheck для статического анализа.

Надеюсь, это поможет!

person Sagar    schedule 01.09.2011
comment
Огромное спасибо. Это, безусловно, очень помогает (я собираюсь оставить вопрос открытым, может быть, награда, но это определенно приемлемый ответ!). Я всегда думал, что PMD будет означать Project Mess Detector, даже если вики говорит, что это ничего не означает или, может быть, Programming Mistake Detector. Спасибо что подметил это :) - person edorian; 01.09.2011
comment
Без проблем! Lol Я понятия не имею, что означает PMD, но пока он работает ... :) и определенно оставьте его открытым. Я хочу видеть, что кто-то другой придумает что-нибудь другое, будет ли оно полезно и мне. - person Sagar; 01.09.2011
comment
В качестве примечания к вашему изменению: Jenkins и все его плагины доступны с открытым исходным кодом. Кроме того, все инструменты, упомянутые в моем ответе, имеют открытый исходный код (кроме PCLint, но его репутация говорит сама за себя). Это также означает, что они требуют небольшой работы, но ничего невозможного ... - person Sagar; 11.09.2011

Мы используем Jenkins с googletest фреймворк для модульного тестирования.

  • Тестовые прогоны производят jUnit-совместимый xml.
  • Переносится почти на все компиляторы, с которыми вы, вероятно, столкнетесь.

Перейдя по собственной ссылке, я нашел это:

Непрерывное покрытие кода с помощью gcc, googletest и Hudson

Первые три строки команды просто выполняют сборку. Команда в строке 4 выполняет созданное нами двоичное тестовое приложение и выводит сводку результатов теста в XML-файл в формате junit.

Последние две команды - вот где волшебство. При этом выполняется сценарий gcovr, удобный сценарий Python, который преобразует вывод gcov в XML-файл в стиле Cobertura.

Затем мы должны сказать hudson, что нужно выполнить поиск в рабочей области сборки для файлов junit и покрытия xml в качестве действия после сборки. Теперь, когда мы запускаем сборку, мы получаем красивые обзорные диаграммы, отображающие тенденции результатов модульных тестов и охват кода.

person reechard    schedule 03.09.2011

В настоящее время я использую плагин xUnit для проектов C / C ++, и пока он работает очень хорошо.

Согласно wikipage cppunit, он больше не поддерживается, но был перенесен в xUnit (source).

person Keplah    schedule 09.01.2013