C ++ Jenkins QA Stack / Инструменты - PullRequest
       27

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

36 голосов
/ 01 сентября 2011

В настоящее время мы находимся в процессе создания стека QA для вас. Разработка на C ++ .

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

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

Подробнееспецифичные (примеры java / php в фигурных скобках):

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

Редактирование щедрости:

Пока я получил приемлемый ответ на мой вопрос, меня попросили предоставить больше инструментов/ опции / причины использовать Jenkiнс для этого проекта.

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

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

Ответы [ 3 ]

35 голосов
/ 01 сентября 2011

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

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

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

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

11 голосов
/ 03 сентября 2011

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

  • В ходе тестовых прогонов создается jUnit-совместимый xml.
  • Портируется на большинство компиляторов, с которыми вы можете столкнуться.

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

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

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

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

Затем мы должны сказать Хадсону искать в рабочей области сборки поиск Junit и покрытие XML-файлов как действие после сборки. Теперь, когда мы бежим В сборке мы получаем хорошие обзорные графики с результатами модульных тестов и покрытие кода.

1 голос
/ 09 января 2013

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

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

...