Download the PHP package phpfui/phpunit-syntax-coverage without Composer
On this page you can find all versions of the php package phpfui/phpunit-syntax-coverage. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.
Download phpfui/phpunit-syntax-coverage
More information about phpfui/phpunit-syntax-coverage
Files in phpfui/phpunit-syntax-coverage
Package phpunit-syntax-coverage
Short Description PHPUnit Testing extensions for complete syntax checking of all files and classes in your project
License MIT
Homepage https://github.com/phpfui/PHPUnitSyntaxCoverage
Informations about the package phpunit-syntax-coverage
PHPUnitSyntaxCoverage
PHPUnit Extension for complete PHP Syntax Code Coverage
This package will checks for easy to miss syntax errors in all your PHP code. It will also check all your classes to see if they are loadable, but without actually instantiating the class.
Often we accidently check in code with easily detectable syntax errors, but unless the file or class is actually loaded by PHP, we might not see the error. Often the file or class is syntaxically correct, but a method signature may not match an updated class or vendor library. Normally this would only be detectable at run time, but with PHPUnitSyntaxCoverage, you can make sure all files and classes are checked.
PHPUnitSyntaxCoverage uses PhpParser to check for basic syntax errors. It then uses ReflectionClass to load any classes that are found in the source without instantiating them. This will find additional errors (such as missing or changed base classes from a package update).
Requirements
- Modern versions of PHP and PHPUnit
- Correctly configured autoloading
Installation
Usage
Extend your unit tests from \PHPFUI\PHPUnitSyntaxCoverage\Extensions
You can use any of the following asserts:
- assertValidPHP(string $code, string $message = '')
- assertValidPHPDirectory(string $directory, string $message = '', bool $recurseSubdirectories = true, array $extensions = ['.php'])
- assertValidPHPFile(string $fileName, string $message = '')
Directory Testing
Instead of file by file testing, use assertValidPHPDirectory to test an entire directory. Any files added to the directory will be automatically tested.
The error message will include the offending file name and line number.
Use addSkipDirectory to add simple case insensitive file matching to skip specific directories / files.
Autoloading
You must make sure autoloading is correctly configured for all classes. This means you can't pass references to classes that will not resolve correctly in your source. Use addSkipDirectory if you have test code that may not validate correctly.
Namespace Testing
The assertValidPHPFile and assertValidPHPDirectory asserts will test for the proper namespace in the file path (for PSR-0 autoloading and fully pathed PSR-4 autoloading), but you can turn off namespace testing with skipNamespaceTesting or exclude a specific namespace tests with addSkipNamespace.
PHP Version
While this library only supports currently supported versions of PHP, you can create a project and point it to PHP 5.2 or higher. The default is to prefer PHP 7 code, but to prefer or only parse PHP 5, configure phpunit.xml(.dist) with
<php>
<env name="PHPFUI\PHPUnitSyntaxCoverage\Extensions_parser_type" value="X"/>
</php>
Where X is one of the following numbers:
- Prefer PHP 7
- Prefer PHP 5
- Only PHP 7
- Only PHP 5
Examples
See examples
Full Class Documentation
License
PHPFUI is distributed under the MIT License.