С++ Jenkins QA Stack/Tools
В настоящее время мы создаем стек QA для разработки на С++.
У нас уже есть несколько запущенных экземпляров Jenkins и очень опытный опыт работы с CI-сервером в сочетании с другими языками, такими как java и php.
То, что я прошу, - это указатели на цепочки инструментов, которые можно использовать для разработки С++ с Jenkins.
Более конкретные (примеры java/php в фигурных скобках):
- Структура , которая тестирует и создает отчеты о покрытии (jUnit/phpUnit)
- A проверка правил кодирования (checkstyle/phpCodeSniffer)
- Что-то PMD, которое обнаруживает потенциальные проблемы в базе кода (pmd/phpmd)
- Больше, если это применимо/необходимо, но эти 3 будут основами, которые я предполагаю?
Bounty edit:
Пока я получил приемлемый ответ на мой вопрос, меня попросили предоставить больше инструментов/вариантов/причин использовать Jenkins для этого проекта.
В прошлом я делал неоптимальные опыты с коммерческими инструментами в этом отношении. (Что вы хотите сохранить эти отчеты? Тогда вам нужно купить дополнительный 10k Bucks/Year плагин, который может генерировать фантазии GRAPHS! Для вас.) Возможно, я ошибаюсь, поэтому, пожалуйста, скажите мне, есть ли я.
Но в основном я ищу полный набор инструментов для использования с Jenkins для разработки на С++ и QA
Ответы
Ответ 1
Мы используем Jenkins с C и С++. Это инструменты, которые мы использовали, и я думаю, что вы можете найти полезные. Все они могут использоваться с Дженкинсом:
- Единая система тестирования - cppunit: выводит xml, который можно напрямую подавать в Jenkins с помощью cppunit плагин
- Охват: gcov + gcovr дает хорошие отчеты о покрытии
- Проверка правил кодирования: для этого можно использовать pclint и плагин предупреждений.
- Mess Detector: не уверен, что вы подразумеваете под беспорядком здесь, но мы используем PMD/CPD для кода проверка дублирования и NSIQ для сложности и LOC
Мы также используем cppcheck для статического анализа.
Надеюсь, что это поможет!
Ответ 2
Мы используем Jenkins с googletest модулем тестирования.
- Тест-тесты создают jUnit-совместимый xml.
- Портировано для большинства компиляторов, с которыми вы, вероятно, столкнетесь.
Следуя моей собственной ссылке, я нашел это:
Непрерывный охват кода с помощью gcc, googletest и Hudson
Первые три строки команды просто выполняют сборку. команда в строке 4 выполняет двоичное тестовое приложение, которое мы создали, и выводит сводку результатов теста в XML файл формата junit.
Последние две команды - это волшебство. Это выполняет gcovr script, удобный python script, который преобразует вывод gcov в Файл XML в стиле Cobertura.
Затем мы должны сообщить hudson о поиске рабочей области сборки для junit и xml файлы покрытия как действие после сборки. Теперь, когда мы запускаем в сборке мы получаем хорошие обзорные графики, показывающие результаты unit testи покрытие кода.
Ответ 3
В настоящее время я использую плагин xUnit для проектов на C/С++, и он работает очень до сих пор.
Согласно cppunit wikipage, он больше не поддерживается, а переносится в xUnit (источник).