soundasleep/component-tests

Common Composer and PHP component lint and validation tests


License
MIT

Documentation

component-tests Build Status

Common Composer and PHP component lint and validation tests.

Tests

  1. Check that all .json files are valid JSON (using json_decode)
  2. Check that all .php files are valid PHP (using php -l)
  3. Check that all composer.json files are valid according to the Composer JSON-schema
  4. Check that all PHP files that use require() etc. use __DIR__ in the path
  5. Check that all PHP files that use require() etc. refer to files that actually exist

Using

First include component-tests as a requirement in your project composer.json, and run composer update to install it into your project:

{
  "require": {
    "soundasleep/component-tests": "~0.2"
  }
}

Now create an instance of \ComponentTests\ComponentTest to define which paths to search (and optionally exclude):

class MyComponentTest extends \ComponentTests\ComponentTest {

  function getRoots() {
    return array(__DIR__ . "/..");
  }

  /**
   * Optional: exclude certain paths
   */
  function getExcludes() {
    return array("/resources/", "/vendor/");
  }
}

You can now run this test through your normal phpunit.

Tests

This component is tested itself; install the composer requirements with composer install and run vendor/bin/phpunit.