talesoft / tale-dev-tool
Talesoft unit tests, coverage and code style tools
Requires
- php: >=7.1.0
- codeclimate/php-test-reporter: ^0.4.0
- phpunit/php-code-coverage: ^6.0
- phpunit/phpunit: ^7.0
- squizlabs/php_codesniffer: ^2.8
- symfony/console: ^3.4.9
README
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>