facebook twitter hatena line email

セキュリティ/静的解析/Sonar/sonar-scannerテスト

提供: 初心者エンジニアの簡易メモ
移動: 案内検索

必須ライブラリ

$ php -m | grep xdebug
xdebug

sonar-php-unit-testのサンプルをDL

$ wget https://github.com/SonarSource/sonar-examples/zipball/master
$ unzip master
$ cd SonarSource-sonar-examples-5b942de/projects/languages/php/php-sonar-runner-unit-tests
$ vi sonar-project.properties

サンプル実行

sonar-scanner

テスト網羅率表示

$ vi sonar-project.properties

に追加

sonar.phpUnit.mainTestClass=tests/AllTest.php

注意:xdebug必須

テスト成功率表示

$ vi sonar-project.properties
# Unit test success on
sonar.tests=tests

tests/phpunit.xmlからphpunitを実行する場合

$ vi sonar-project.properties

に追加

sonar.phpUnit.ignore.configuration=false
sonar.phpUnit.skip=false
sonar.phpUnit.mainTestClass=tests/application
sonar.phpUnit.bootstrap=tests/bootstrap.php
sonar.phpUnit.filter=tests/application
sonar.phpUnit.coverage.skip=false

・・・としてみたが、phpunit.xmlは読み込まれない?

以下エラー対処方法

Caused by: org.sonar.api.utils.SonarException: PHPUnit execution failed with returned code '255'. Please check the documentation of PHPUnit to know more about this failure.

エラー行の20行ぐらい前に"PHP Fatal error"などが出ているので、そこを確認する

なければエラーログにはかれてないか確認。php -r "phpinfo();" | grep error_log

注意

ダッシュボードの"Unit tests coverage"からファイル一覧を見てもカバレッジ100%は表示されない。コンポーネントからファイル一覧をみること。

テストが実行されないファイルがある場合

ファイル名がphpunitの命名規則にあってるか確認(~Test.php)

coverageが0%になる場合

.sonar/target/logs/phpunit.coverage.xml

に結果ログが残っているか確認

The Xdebug extension is not loaded. No code coverage will be generated.

xdebugがインストールされていないエラーが出てないか確認。出てたらxdebugを入れる


参照URL

  • sonar-runnerオプション解説ページ

http://docs.codehaus.org/display/SONAR/PHP+Plugin