2013-05-21 3 views
3

Я пытаюсь использовать плагин Php Code Sniffer в Jenkins. Он генерирует файл checkstyle.xml, но внутри него нет ошибок, и я знаю, что должен иметь.Использование Jenkins и Php Code Sniffer

Вот containt моего checkstyle.xml:

<?xml version="1.0" encoding="UTF-8"?> 
<checkstyle version="1.5.0RC2"> 
</checkstyle> 

Мой файл build.xml для Дженкинс:

<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 без каких-либо ошибок, и phpcs-checkstyle.tmp, который содержит ошибки.

Как это сделать, чтобы получить результаты с ошибками в файле checkstyle.xml?

Спасибо.

ответ

3

Я думаю, ваша проблема в том, что вы страдаете от этой ошибки: http://pear.php.net/bugs/bug.php?id=19930

Исправлена ​​ошибка происходит только в версии RC вы используете.

Возвращение к текущей стабильной версии (1.4.5) должно заставить вас снова работать.

+0

Спасибо, Грег, да, похоже, такая же проблема. Я новичок в Linux, как я могу понизить версию? Не могли бы вы показать мне командные строки, пожалуйста? – Stephtheboss

+0

Все в порядке, я нашел, как это сделать.

 pear uninstall PHP_CodeSniffer pear install PHP_CodeSniffer-1.4.5 
Похоже, что поколение работает, я должен его проверить. Спасибо – Stephtheboss

1

Я считаю, что причина, по которой у вас возникли проблемы при запуске команды в 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> 

Хотя, по умолчанию phpcs только проверяет .INC и .php файлы во всяком случае.

+0

Thanks Jay Klehr, Я пробовал это раньше, но когда я запускаю сборку с этим, сборка phcs не заканчивается. Кажется, что-то делает, но я не знаю, что. (У меня есть только 2 файла php для проверки моих тестов). У меня это работает 15мин, но я не думаю, что это нормально. Нужно ли мне что-то делать? – Stephtheboss

+0

Теперь, когда set --extensions = php, он работает. Я сделал так много изменений, что не знаю, изменил ли я что-то. Кстати, спасибо. – Stephtheboss