README.md
[![Packagist](https://img.shields.io/packagist/v/talesoft/tale-dev-tool.svg?style=for-the-badge)](https://packagist.org/packages/talesoft/tale-dev-tool)
[![License](https://img.shields.io/github/license/Talesoft/tale-dev-tool.svg?style=for-the-badge)](https://github.com/Talesoft/tale-dev-tool/blob/master/LICENSE.md)
[![CI](https://img.shields.io/travis/Talesoft/tale-inflector.svg?style=for-the-badge)](https://travis-ci.org/Talesoft/tale-dev-tool)
[![Coverage](https://img.shields.io/codeclimate/coverage/Talesoft/tale-dev-tool.svg?style=for-the-badge)](https://codeclimate.com/github/Talesoft/tale-dev-tool)
Tale Dev Tool
=============
What is Tale Dev Tool?
----------------------
It's a fork of the [phug/dev-tool](https://github.com/phug-php/dev-tool) tailored to the needs of tale-* components.
You can use it for any kind of composer-based PHP-project.
It provides default configuration for PHPUnit, PHP CodeSniffer and PHPDocumentor.
It can also check code coverage percentages and report the coverage to CodeClimate.
Installation
------------
Install via Composer
```bash
composer require talesoft/tale-dev-tool --dev
```
Usage
-----
During development, you will mostly call the tool like this:
./vendor/bin/tale-dev <command> <arguments>
### Available Commands
#### `install`
Updates composer and installs composer dependencies
#### `check`
Runs `unit-tests:run`, `code-style:check` and `coverage:check` in this order and fails as soon as one of the commands fail.
Return code is the return code of the failed command.
If `--report` is set, this command will generate code-coverage data and report it to code-climate.
I usually have a .travis.yml set up for this that contains something like
```yaml
addons:
code_climate:
repo_token: <your_code_climate_repo_token>
```
Check this repo's .travis.yml to get an idea. You can also check the repo of e.g. [tale-stream](https://github.com/Talesoft/tale-stream) to see how it's used in an actual library.
> Notice: This is an [outdated](https://github.com/codeclimate/php-test-reporter) way to report coverage and I need to update it. Feel free to ignore it, even though it will probably still work for a while.
#### `code-style:check`
Automatically scans code for problems regarding `PSR-2` and attempts to fix them if wanted.
This runs `phpcs` with a default config or a local config, if found.
#### `code-style:fix`
Automatically fixes code-problems regarding `PSR-2`.
This runs `phpcbf` with a default config or a local config, if found.
#### `unit-tests:run`
Runs unit tests located in `./tests`.
You can pass `--coverage-text` and `--coverage-clover=<targetXmlPath>` to generate code-coverage information.
The `--filter`, `--group` and `--testdox` options are passed through to PHPUnit, if set.
#### `coverage:check`
Checks existing code-coverage data and fails if a specific percentage coverage (**80%** by default) is not reached.
Accepts `--input-file=<targetXmlPath>` that points to a coverage file generated by `unit-tests:run --coverage-clover=<targetXmlPath>`
#### `coverage:report`
Reports coverage data to CodeClimate.
Accepts `--input-file=<targetXmlPath>` that points to a coverage file generated by `unit-tests:run --coverage-clover=<targetXmlPath>`