セキュリティ/静的解析/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オプション解説ページ