Я пытаюсь использовать плагин Php Code Sniffer в Jenkins. Он генерирует файл checkstyle.xml, но внутри нет ошибок, и я знаю, что должен иметь.
Вот удержание моего checkstyle.xml:
<?xml version="1.0" encoding="UTF-8"?> <checkstyle version="1.5.0RC2"> </checkstyle>
Мой файл build.xml для Jenkins:
<target name="phpcs" > <exec executable="phpcs"> <arg line="--report=checkstyle --report-file=${project.basedir}/build/logs/checkstyle.xml --standard=Zend ${project.basedir}/*.php" /> </exec> </target>
И когда я делаю это в командной строке, у меня другой результат. Моя команда:
phpcs --report=checkstyle --report-file=checkstyle.xml --standard=Zend *.php
Он генерирует один и тот же файл checkstyle.xml без ошибок и phcs-checkstyle.tmp, содержащий ошибки.
Как я могу сделать, чтобы результаты были с ошибками в файле checkstyle.xml?
Благодарю.
Я думаю, ваша проблема в том, что вы страдаете от этой ошибки: http://pear.php.net/bugs/bug.php?id=19930
Ошибка возникает только в версии RC, которую вы используете.
Возвращение к текущей стабильной версии (1.4.5) должно заставить вас снова работать.
Я считаю, что причина, по которой у вас возникли проблемы при запуске команды в Jenkins (ant), связана с тем, что вы используете подстановочную звездочку. Подстановочный знак расширяется оболочкой linux, но не муравьем.
Попробуйте удалить шаблон.
<target name="phpcs" > <exec executable="phpcs"> <arg line="--report=checkstyle --report-file=${project.basedir}/build/logs/checkstyle.xml --standard=Zend ${project.basedir}" /> </exec> </target>
Если вы обеспокоены тем, что phpcs будет работать с файлами, отличными от php, вы можете передать параметр расширения: http://pear.php.net/manual/en/package.php.php-codesniffer.advanced-usage.php
<target name="phpcs" > <exec executable="phpcs"> <arg line="--report=checkstyle --report-file=${project.basedir}/build/logs/checkstyle.xml --standard=Zend --extensions=php ${project.basedir}" /> </exec> </target>
Хотя, по умолчанию, phcs только проверяет файлы .inc и .php.