Gulp plugin to control PHPUnit
First, install gulp-phpunit
as a development dependency:
npm i -D gulp-phpunit
After you have installed plugin, reference in to your gulpfile.js
:
var phpunit = require('gulp-phpunit');
Option 1: Default format, equivelant to using phpunit
in command line (no options).
var gulp = require('gulp');
var phpunit = require('gulp-phpunit');
gulp.task('phpunit', function() {
gulp.src('')
.pipe(phpunit());
});
Option 2: With defined bin and options.
var gulp = require('gulp');
var phpunit = require('gulp-phpunit');
gulp.task('phpunit', function() {
var options = {debug: false};
gulp.src('phpunit.xml')
.pipe(phpunit('./vendor/bin/phpunit',options));
});
Option 3: With custom options, using separate configuration file, disabling status line
var gulp = require('gulp');
var phpunit = require('gulp-phpunit');
gulp.task('phpunit', function() {
var options = {
debug: true,
statusLine: false,
configurationFile: './test.xml'
};
gulp.src('phpunit.xml')
.pipe(phpunit('./vendor/bin/phpunit', options));
});
Option 4: Using callback when testing completed
var gulp = require('gulp');
var phpunit = require('gulp-phpunit');
gulp.task('phpunit', function() {
gulp.src('phpunit.xml')
.pipe(phpunit('./vendor/bin/phpunit', {}, function(err, msg) {
// null if no error
// 1 if error
if(err) {
console.log('Error' + err);
}
console.log(msg);
}));
});
Note: Windows OS may require double backslashes if using other than default location
var phpunit = require('gulp-phpunit');
gulp.task('phpunit', function() {
gulp.src('phpunit.xml')
.pipe(phpunit('.\\path\\to\\phpunit'));
});
Type: String
The path to the desired PHPUnit binary
- If not supplied, the default path will be
./vendor/bin/phpunit
Type: Boolean
Default: false
Debug mode enabled (enables --debug switch as well)
Type: Boolean
Default: false
Clear console before executing command
Type: Boolean
Default: false
Executes dry run (doesn't actually execute tests, just echo command that would be executed)
Type: Boolean
Default: true
Conditionally display notification (both console and growl where applicable)
Type: Boolean
Default: true
Displays status lines as follows
- green for passing tests
- red for failing tests
- yellow for tests which have
debug
property enabled (will also display red, green status)
In addition to plugin options, the following PHPUnit specific options may be configured. For more information (and default values), visit the help supplied by PHPUnit
$ phpunit --help
Type: String
Define a specific class for testing (supply full path to test class)
Type: String
Define a specific test suite for testing (supply full path to test suite)
Type: String
Define a path to an xml configuration file (supply full path and filename)
- If
.xml
file supplied as task source, it will be used as configuration file - If
configurationFile
property supplied in options, it will be used as configuration file - If you enable
noConfigurationFile
property, no configuration file will be used
Type: function
You may supply an optional callback which will be called when testing has completed. The callback follows the standard nodejs callback signature
function callback(err, msg) {}
Call user supplied callback to handle notification
Type: String
Generate code coverage report in Clover XML format.
Type: String
Generate code coverage report in Crap4J XML format.
Type: String
Generate code coverage report in HTML format.
Type: String
Export PHP_CodeCoverage object to file.
Type: String
Generate code coverage report in text format. -- Default: Standard output.
Type: String
Generate code coverage report in PHPUnit XML format.
Type: String
Log test execution in JUnit XML format to file.
Type: String
Log test execution in TAP format to file.
Type: String
Log test execution in JSON format.
Type: String
Write agile documentation in HTML format to file.
Type: String
Write agile documentation in Text format to file.
Type: String
Filter which tests to run.
Type: String
Filter which testsuite to run.
Type: String
Only runs tests from the specified group(s).
Type: String
Exclude tests from the specified group(s).
Type: String
List available test groups.
Type: String
Only search for test in files with specified suffix(es). Default: Test.php,.phpt
Type: String
Be strict about tests that do not test anything.
Type: Boolean
Be strict about unintentionally covered code.
Type: Boolean
Be strict about output during tests.
Type: Boolean
Enforce time limit based on test size.
Type: Boolean
Disallow @todo-annotated tests.
Type: Boolean
Run tests in strict mode (enables all of the above).
Type: Boolean
Run each test in a separate PHP process.
Type: Boolean
Do not backup and restore $GLOBALS for each test.
Type: Boolean
Backup and restore static attributes for each test.
Type: String
Default: always
Use colors in output ("never", "auto" or "always").
Note: If using PHPUnit < 4.8.x, you can disable colors using 'disabled' or 'enabled' options
phpunit('',{colors: 'disabled'}); // disable colors
phpunit('',{colors: 'enabled'}); // enable colors
Type: Boolean
Write to STDERR instead of STDOUT.
Type: Boolean
Stop execution upon first error.
Type: Boolean
Stop execution upon first error or failure.
Type: Boolean
Stop execution upon first risky test.
Type: Boolean
Stop execution upon first incomplete test.
Type: Boolean
Stop execution upon first skipped test.
Type: String
TestSuiteLoader implementation to use.
Type: Integer | String
Runs the test(s) repeatedly.
Type: Boolean
Report test execution progress in TAP format.
Type: Boolean
Report test execution progress in TestDox format.
Type: String
TestSuiteListener implementation to use.
Type: String
A "bootstrap" PHP file that is run before the tests.
Type: String
Read configuration from XML file.
Type: Boolean
Ignore default configuration file (phpunit.xml).
Type: Boolean
Prepend PHP's include_path with given path(s).
gulp-phpunit written by Mike Erickson
E-Mail: [email protected]
Twitter: @codedungeon
Website: github.com/mikeerickson