171 lines
		
	
	
		
			5.3 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
			
		
		
	
	
			171 lines
		
	
	
		
			5.3 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
| [](https://www.codacy.com/app/Codacy/php-codacy-coverage)
 | ||
| [](https://www.codacy.com/app/Codacy/php-codacy-coverage)
 | ||
| [](https://circleci.com/gh/codacy/php-codacy-coverage)
 | ||
| [](https://packagist.org/packages/codacy/coverage)
 | ||
| 
 | ||
| # Codacy PHP Coverage Reporter
 | ||
| [Codacy](https://codacy.com/) coverage support for PHP. Get coverage reporting and code analysis for PHP from Codacy.
 | ||
| 
 | ||
| # Prerequisites
 | ||
| 
 | ||
| - PHP 5.3 or later
 | ||
| - One of the following coverage report formats
 | ||
|   - Clover XML (e.g. ```--coverage-clover``` in PHPUnit)
 | ||
|   - [Only for PHPUnit <4] PHPUnit XML (e.g. ```--coverage-xml``` in PHPUnit)
 | ||
| 
 | ||
| # Installation
 | ||
| 
 | ||
| Setup codacy-coverage with Composer, just add the following to your composer.json:
 | ||
| 
 | ||
| ```js
 | ||
| // composer.json
 | ||
| {
 | ||
|     "require-dev": {
 | ||
|         "codacy/coverage": "dev-master"
 | ||
|     }
 | ||
| }
 | ||
| ```
 | ||
| 
 | ||
| Download the dependencies by running Composer in the directory of your `composer.json`:
 | ||
| 
 | ||
| ```sh
 | ||
| # install
 | ||
| $ php composer.phar install --dev
 | ||
| # update
 | ||
| $ php composer.phar update codacy/coverage --dev
 | ||
| ```
 | ||
| 
 | ||
| codacy-coverage library is available on [Packagist](https://packagist.org/packages/codacy/coverage).
 | ||
| 
 | ||
| Add the autoloader to your php script:
 | ||
| 
 | ||
| ```php
 | ||
| require_once 'vendor/autoload.php';
 | ||
| ```
 | ||
| 
 | ||
| > Note:
 | ||
| We have php5-curl dependency, if you have issues related to curl_init() please install it with:
 | ||
| ```
 | ||
| sudo apt-get install php5-curl
 | ||
| ```
 | ||
| 
 | ||
| ## Alternative Installation (using phar)
 | ||
| 
 | ||
| Setup codacy-coverage as phar, you can simply download a pre-compiled and ready-to-use version as a phar to any directory. Simply download the latest `codacy-coverage.phar` file from our [releases page](https://github.com/codacy/php-codacy-coverage/releases):
 | ||
| 
 | ||
| [Latest release](https://github.com/codacy/php-codacy-coverage/releases/latest)
 | ||
| 
 | ||
| That's it already.
 | ||
| 
 | ||
| ## Updating Codacy
 | ||
| 
 | ||
| To update Codacy, you will need your project API token. You can find the token in Project -> Settings -> Integrations -> Project API.
 | ||
| 
 | ||
| Then set it in your terminal, replacing %Project_Token% with your own token:
 | ||
| 
 | ||
| ```
 | ||
| export CODACY_PROJECT_TOKEN=%Project_Token%
 | ||
| ```
 | ||
| 
 | ||
| > Note: You should keep your API token well **protected**, as it grants owner permissions to your projects.
 | ||
| 
 | ||
| > To send coverage in the enterprise version you should:
 | ||
| ```
 | ||
| export CODACY_API_BASE_URL=<Codacy_instance_URL>:16006
 | ||
| ```
 | ||
| 
 | ||
| # Usage
 | ||
| 
 | ||
| Run ```vendor/bin/codacycoverage``` to see a list of commands.
 | ||
| 
 | ||
| #### Basic usage for Clover format:
 | ||
| 
 | ||
| ```vendor/bin/codacycoverage clover```
 | ||
| 
 | ||
| #### Basic usage for PHPUnit XML format:
 | ||
| 
 | ||
| ```php vendor/bin/codacycoverage phpunit```
 | ||
| 
 | ||
| By default we assume that
 | ||
| - your Clover coverage report is saved in ```build/logs/clover.xml```
 | ||
| - your PHPUnit XML report is saved in the directory ```build/coverage-xml```
 | ||
| 
 | ||
| #### Optional parameters:
 | ||
| 
 | ||
| You can specify the path to your report with the second parameter:
 | ||
| 
 | ||
| - Clover XML
 | ||
|   - ```php vendor/bin/codacycoverage clover path/to/a-clover.xml```
 | ||
| - PHPUnit XML
 | ||
|   - ```php vendor/bin/codacycoverage phpunit directory/path/to/phpunitreport```
 | ||
| 
 | ||
| Even more control:
 | ||
| 
 | ||
| - ```--base-url=<OTHER_URL>``` defaults to http://codacy.com
 | ||
| - ```--git-commit=<COMMIT_HASH>``` defaults to the last commit hash
 | ||
| 
 | ||
| ## Circle CI
 | ||
| 
 | ||
| This project sends its own coverage during the build in circleCI.
 | ||
| Feel free to check our `circle.yml`, and send your coverage as a step of your build process. 
 | ||
| 
 | ||
| ## Travis CI
 | ||
| 
 | ||
| Add codacycoverage to your `.travis.yml`:
 | ||
| 
 | ||
| ```yml
 | ||
| # .travis.yml
 | ||
| language: php
 | ||
| 
 | ||
| # Do not forget to provide your CODACY_PROJECT_TOKEN as described in https://docs.travis-ci.com/user/environment-variables/#Defining-Variables-in-Repository-Settings
 | ||
| 
 | ||
| php:
 | ||
|   - 5.3
 | ||
|   - 5.4
 | ||
|   - 5.5
 | ||
|   - 5.6
 | ||
|   - hhvm
 | ||
| 
 | ||
| # In case of timeouts and build failures you may want to prepend 'travis_retry' to the following commands:
 | ||
| before_script:
 | ||
|   - curl -s http://getcomposer.org/installer | php
 | ||
|   - php composer.phar install -n
 | ||
| 
 | ||
| script:
 | ||
|   - php vendor/bin/phpunit --coverage-clover build/coverage/xml
 | ||
| 
 | ||
| after_script:
 | ||
|   - php vendor/bin/codacycoverage clover build/coverage/xml
 | ||
| ```
 | ||
| 
 | ||
| ## Troubleshooting
 | ||
| 
 | ||
| If you have a fatal error regarding curl_init():
 | ||
| ```
 | ||
| PHP Fatal error:  Uncaught Error: Call to undefined function Codacy\Coverage\Util\curl_init() in /src/Codacy/Coverage/Util/CodacyApiClient.php:30
 | ||
| ```
 | ||
| Run: ```sudo apt-get install php5-curl```
 | ||
| 
 | ||
| ## What is Codacy?
 | ||
| 
 | ||
| [Codacy](https://www.codacy.com/) is an Automated Code Review Tool that monitors your technical debt, helps you improve your code quality, teaches best practices to your developers, and helps you save time in Code Reviews.
 | ||
| 
 | ||
| ### Among Codacy’s features:
 | ||
| 
 | ||
| - Identify new Static Analysis issues
 | ||
| - Commit and Pull Request Analysis with GitHub, BitBucket/Stash, GitLab (and also direct git repositories)
 | ||
| - Auto-comments on Commits and Pull Requests
 | ||
| - Integrations with Slack, HipChat, Jira, YouTrack
 | ||
| - Track issues in Code Style, Security, Error Proneness, Performance, Unused Code and other categories
 | ||
| 
 | ||
| Codacy also helps keep track of Code Coverage, Code Duplication, and Code Complexity.
 | ||
| 
 | ||
| Codacy supports PHP, Python, Ruby, Java, JavaScript, and Scala, among others.
 | ||
| 
 | ||
| ### Free for Open Source
 | ||
| 
 | ||
| Codacy is free for Open Source projects.
 | ||
| 
 | ||
| ## License
 | ||
| [MIT](LICENSE)
 | 
