talesoft/tale-dev-tool

Talesoft unit tests, coverage and code style tools

0.2.5 2018-08-22 22:33 UTC

README

Packagist License CI Coverage

Tale Dev Tool

What is Tale Dev Tool?

It's a fork of the phug/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

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

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 to see how it's used in an actual library.

Notice: This is an outdated 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>