2017 © Pedro Peláez
 

library code-quality

Code Quality scripts that can be run via Composer.

image

karriere/code-quality

Code Quality scripts that can be run via Composer.

  • Wednesday, February 21, 2018
  • by jaylinski
  • Repository
  • 15 Watchers
  • 15 Stars
  • 2,964 Installations
  • PHP
  • 2 Dependents
  • 0 Suggesters
  • 2 Forks
  • 1 Open issues
  • 19 Versions
  • 14 % Grown

The README.md

    Build Status Code Style, (*1)

❗️ This package is no longer being actively developed. ❗

Code Quality for PHP packages

This package provides code quality scripts that can be run via Composer., (*2)

The scripts also work on continous integration (CI) servers like Jenkins., (*3)

Used packages

phpspec/phpspec

Used for testing (SpecBDD) the code.
Must be configured with a phpspec.yml file in your root folder., (*4)

We are using the leanphp/phpspec-code-coverage extension for generating coverage reports.
This extension requires a phpspec-coverage.yml file in your root folder and Xdebug enabled., (*5)

squizlabs/PHP_CodeSniffer

Currently used for checking (linting) and fixing the code.
Sniffs all files in src directory., (*6)

phpmd/phpmd

Used for mess detection.
Runs the defined ruleset (config/phpmd.xml) on all files in src directory., (*7)

Installation

Run composer require --dev karriere/code-quality to install this package., (*8)

After installing, insert the desired scripts to your composer.json., (*9)

{
    "scripts": {
        "test": "Karriere\\CodeQuality\\SpecificationTest::run",
        "lint": "Karriere\\CodeQuality\\CodeStyleChecker::run",
        "fix": "Karriere\\CodeQuality\\CodeStyleFixer::run",
        "coverage": "Karriere\\CodeQuality\\CodeCoverage::run",
        "md": "Karriere\\CodeQuality\\MessDetector::run"
    }
}

Usage

You can run a script like this: composer {script} -- {options}., (*10)

If you are using Git-Shell on Windows (or Git-Shell in Intellij Terminal on Windows), call scripts like this: composer.bat {script}. Otherwise colors will not work., (*11)

You can disable TTY by adding the --notty flag (needed for Jenkins).
On Windows platform it's disabled automatically., (*12)

composer {script} -- --env=jenkins --notty

Scripts

test

Usage:
  test [--] [options]

Options:
      --fail     Exit with 1 if tests fail.
      --notty    Disable TTY.
      --ptimeout Set process timeout (defaults to 60 seconds).
   -v --verbose  Increase the verbosity of messages.

coverage

Usage:
  coverage [--] [options]

Options:
      --env       Specifiy the environment. Possible values:
                  'local': prints output on command-line.
                  'jenkins': generates a JUnit report file.
      --notty     Disable TTY.
      --ptimeout  Set process timeout (defaults to 60 seconds).

lint

Usage:
  lint [--] [options]

Options:
      --env       Specifiy the environment. Possible values:
                  'local': prints output on command-line.
                  'jenkins': generates a checkstyle report file.
      --fail      Exit with 1 if linting fails.
      --notty     Disable TTY.
      --ptimeout  Set process timeout (defaults to 60 seconds).

md

Usage:
  lint [--] [options]

Options:
      --env       Specifiy the environment. Possible values:
                  'local': prints output on command-line.
                  'jenkins': generates a xml report file.
      --notty     Disable TTY.
      --ptimeout  Set process timeout (defaults to 60 seconds).

fix

Usage:
  fix [--] [options]

Options:
      --notty     Disable TTY.
      --ptimeout  Set process timeout (defaults to 60 seconds).

Using custom matchers

This package integrates karriere/phpspec-matchers. In order to use the custom matchers defined in this package, please include the extension configuration in your phpspec.yml., (*13)

FAQ

Why do I have to provide two phpspec configuration files?

The code-coverage-extension slows down the phpspec tests, so we excluded it from the normal configuration file. Keep tests fast!, (*14)

How do I increase the verbosity of the test-script output?

Run composer test -- -v., (*15)

The Versions

06/05 2016