Мы используем Hudson для непрерывной интеграции с плагином Violations, который анализирует наши выходные данные из pylint. Однако pylint слишком строг, и его сложно настроить. Что мы предпочли бы использовать, так это pyflakes, которые дали бы нам правильный уровень «Вы делаете это неправильно».
Как бы я начал интегрировать pyflakes с Hudson
Ответы (3)
Вы можете адаптировать вывод pyflakes и pep8 для работы с плагином Violations pylint.
pyflakes path/to/src | awk -F\: '{printf "%s:%s: [E]%s\n", $1, $2, $3}' > violations.pyflakes.txt
pep8 path/to/src | awk -F\: '{printf "%s:%s: [%s]%s\n", $1, $2, substr($4,2,4), substr($4,6)}' > violations.pep8.txt
Вы можете использовать регулярное выражение или объединить выходные данные для создания отчета, включающего несколько показателей.
Дополнительные сведения см. на странице http://hustoknow.blogspot.com/2011/01/integration-pyflakes-into-hudson.html
Плагин Violations требует вывода xml от различных средств проверки, которые он поддерживает.
Я не знаком с pyflakes, но, судя по моему краткому сканированию, он не поддерживает xml в качестве типа вывода. Таким образом, вам придется выполнить постобработку вывода pyflakes, прежде чем позволить Violations попытаться его проанализировать (или вы можете изменить pyflakes и написать свой собственный класс вывода сообщений). Вы, вероятно, захотите захватить вывод pylint и использовать его, чтобы определить подходящий формат xml, который нравится плагину Violations.
Плагин Violations требует вывода xml от различных средств проверки.
Это неправильно: некоторые средства проверки, такие как «checkstyle», выводят XML, некоторые другие, такие как «pylint» и «pep8», выводят «текстовые» файлы с одной записью в строке. Заголовок в Jenkins «Шаблон имени файла XML» просто вводит в заблуждение.