PHPUnit plugin for Gulp
npm install gulp-phpunitFirst, install gulp-phpunit as a development dependency:
```
npm i -D gulp-phpunitUsage
After you have installed plugin, reference in to your gulpfile.js:
`javascript`
var phpunit = require('gulp-phpunit');
Option 1: Default format, equivelant to using phpunit in command line (no options).
`javascript
var gulp = require('gulp');
var phpunit = require('gulp-phpunit');
gulp.task('phpunit', function() {
gulp.src('')
.pipe(phpunit());
});
`
Option 2: With defined bin and options.
`javascript
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
`javascript
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
`javascript
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
`javascript
var phpunit = require('gulp-phpunit');
gulp.task('phpunit', function() {
gulp.src('phpunit.xml')
.pipe(phpunit('.\\path\\to\\phpunit'));
});
`
#### phpunitpath
Type: String
The path to the desired PHPUnit binary
- If not supplied, the default path will be ./vendor/bin/phpunit
#### options.debug
Type: Booleanfalse
Default:
Debug mode enabled (enables --debug switch as well)
#### options.clear
Type: Booleanfalse
Default:
Clear console before executing command
#### options.dryRun
Type: Booleanfalse
Default:
Executes dry run (doesn't actually execute tests, just echo command that would be executed)
#### options.notify
Type: Booleantrue
Default:
Conditionally display notification (both console and growl where applicable)
#### options.statusLine
Type: Booleantrue
Default:
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
#### options.testClass
Type: String
Define a specific class for testing (supply full path to test class)
#### options.testSuite
Type: String
Define a specific test suite for testing (supply full path to test suite)
#### options.configurationFile
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 fileconfigurationFile
- If property supplied in options, it will be used as configuration filenoConfigurationFile
- If you enable property, no configuration file will be used
#### callback
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
#### options.coverageClover
Type: String
Generate code coverage report in Clover XML format.
#### options.coverageCrap4j
Type: String
Generate code coverage report in Crap4J XML format.
#### options.coverageHtml
Type: String
Generate code coverage report in HTML format.
#### options.coveragePhp
Type: String
Export PHP_CodeCoverage object to file.
#### options.coverageText
Type: String
Generate code coverage report in text format.
-- Default: Standard output.
#### options.coverageXml
Type: String
Generate code coverage report in PHPUnit XML format.
#### options.logJunit
Type: String
Log test execution in JUnit XML format to file.
#### options.logTap
Type: String
Log test execution in TAP format to file.
#### options.logJson
Type: String
Log test execution in JSON format.
#### options.testdoxHtml
Type: String
Write agile documentation in HTML format to file.
#### options.testdoxText
Type: String
Write agile documentation in Text format to file.
#### options.filter (pattern)
Type: String
Filter which tests to run.
#### options.testSuite (pattern)
Type: String
Filter which testsuite to run.
#### options.group (pattern)
Type: String
Only runs tests from the specified group(s).
#### options.excludeGroup
Type: String
Exclude tests from the specified group(s).
#### options.listGroups
Type: String
List available test groups.
#### options.testSuffix
Type: String
Only search for test in files with specified suffix(es). Default: Test.php,.phpt
#### options.reportUselessTests
Type: String
Be strict about tests that do not test anything.
#### options.strictCoverage (default: false)
Type: Boolean
Be strict about unintentionally covered code.
#### options.disallowTestOutput (default: false)
Type: Boolean
Be strict about output during tests.
#### options.enforceTimeLimit (default: false)
Type: Boolean
Enforce time limit based on test size.
#### options.disallowTodoTests (default: false)
Type: Boolean
Disallow @todo-annotated tests.
#### options.strict (default: false)
Type: Boolean
Run tests in strict mode (enables all of the above).
#### options.processIsolation (default: false)
Type: Boolean
Run each test in a separate PHP process.
#### options.noGlobalsBackup (default: false)
Type: Boolean
Do not backup and restore $GLOBALS for each test.
#### options.staticBackup (default: false)
Type: Boolean
Backup and restore static attributes for each test.
#### options.colors (default: 'always')
Type: Stringalways
Default:
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
#### options.stderr (default: false)
Type: Boolean
Write to STDERR instead of STDOUT.
#### options.stopOnError (default: false)
Type: Boolean
Stop execution upon first error.
#### options.stopOnFailure (default: false)
Type: Boolean
Stop execution upon first error or failure.
#### options.stopOnRisky (default: false)
Type: Boolean
Stop execution upon first risky test.
#### options.stopOnIncomplete (default: false)
Type: Boolean
Stop execution upon first incomplete test.
#### options.stopOnSkipped (default: false)
Type: Boolean
Stop execution upon first skipped test.
#### options.loader
Type: String
TestSuiteLoader implementation to use.
#### options.repeat
Type: Integer | String
Runs the test(s) repeatedly.
#### options.tap
Type: Boolean
Report test execution progress in TAP format.
#### options.testdox
Type: Boolean
Report test execution progress in TestDox format.
#### options.printer
Type: String
TestSuiteListener implementation to use.
#### options.bootstrap
Type: String
A "bootstrap" PHP file that is run before the tests.
#### options.configurationFile
Type: String
Read configuration from XML file.
#### options.noConfiguration
Type: Boolean
Ignore default configuration file (phpunit.xml).
#### options.includePath
Type: Boolean`
Prepend PHP's include_path with given path(s).
gulp-phpunit written by Mike Erickson
E-Mail: codedungeon@gmail.com
Twitter: @codedungeon
Website: github.com/mikeerickson