2012-09-06 8 views
5

私はJenkins(Hudson)CIを使用しています。毎晩、Checkstyleレポート用のコードネーファを含め、多数のサポートツールを使用してコードを分析しています。 ./framework/*ディレクトリを無視するのではなく、--ignoreパラメータを使用しているかどうかに関係なく、そのディレクトリを含めるようにしてください。CodeSnifferが--ignore指定のフォルダを除外しないのはなぜですか?

レポートは正常に作成され、解析されますが、フレームワーク内のPear Coding標準の違反が極端に多いため、実際には使用されません。

Codesnifferは、このように私のAntビルド・スクリプトから呼び出されます。

<target name="phpcs-ci" description="Find coding standard violations using PHP_CodeSniffer creating a log file for the continuous integration server"> 
<exec executable="phpcs" dir="${basedir}" output="${basedir}/build/logs/checkstyle.xml" failonerror="off"> 
    <arg line="--report=checkstyle --standard=${basedir}/build/phpcs.xml --extensions=php --ignore=*/framework/* ${basedir}" /> 
</exec> 
</target> 

私は、--ignore=framework--ignore=framework/を試してみた、と上記の行の1は、すべての例から私は、Webの周りに発見しました。

私はまた、各引数(using < arg value"..." />)に別の行を使用しようとしましたが、役に立たなくなりました。

アイデア? は感謝:)

編集:

--ignore=${basedir}/framework/ 

...そして、まだ、フレームワークのフォルダが含まれている: --ignore引数は、今あるが。そこにいる誰かが、動作している--ignore引数付きのPhpCodeSniffer設定をしていますか?シェルがそれらを拡大していきますので、ここで*を使用して

答えて

3

交差指が動作しません。

php_codesnifferのバージョンに応じて、無視するディレクトリへのフルパス(古いバージョン)、または無視する作業を行うためのビルドディレクトリからの相対パス(php_codesnifferバージョン1.3.6以降)を渡す必要があります。 Changelogから

抜粋:

  • はパターンが今
01をチェックされているディレクトリに基づいてファイルの相対パスを確認無視
+0

おかげで、私すぐにそれを試してみましょう – Julian

+0

のNogo:現在のargライン/です: Julian

6

私はJenkinsで同じ問題を抱えていましたが、上記の答えはある程度私を助けました。これは今私が持っているものです(私のシステムで動作します)。

お使いのシステムは、次のようになります場合:

/ 
/build.xml 
/foo 
/foo/bar 

これは私が私のbuild.xmlに持っているもの

<target name="phpcs" description="Find coding standard violations using PHP_CodeSniffer and print human readable output. Intended for usage on the command line before committing."> 
<exec executable="phpcs"> 
    <arg value="--standard=${basedir}/build/phpcs.xml" /> 
    <arg value="--ignore=foo/bar" /> 
    <arg path="${basedir}" /> 
</exec> 

あるトリックは$ {BASEDIR}を使用しなかったし、ディレクトリの後続のスラッシュを失います。

私は助けてくれるといいです。

1

ありがとう。私はこのようにそれを解決してしまいました。

作品!

4

これらの除外をbuild/phpcs.xmlに配置することもできます。ここジェンキンスでうまく働いています。

js/facebookディレクトリ内のすべてのファイルを除外する例、js/jquery *と指定したファイル名のワイルドカードが一致する例

<exclude-pattern>lib/facebook</exclude-pattern> 
<exclude-pattern>js/jquery*</exclude-pattern> 
<exclude-pattern>lib/Postmark.php</exclude-pattern> 
関連する問題