Talesoft/tale-dev-tool

View on GitHub
README.md

Summary

Maintainability
Test Coverage

[![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>`