npm install gulp-behatFirst, install gulp-behat as a development dependency:
``shell`
npm install --save-dev gulp-behat
Then, add it to your gulpfile.js:
`javascript
var behat = require('gulp-behat');
// option 1: default format
gulp.task('behat', function() {
gulp.src('./tests/*/.feature').pipe(behat());
});
// option 2: with defined bin and options
gulp.task('behat', function() {
var options = {debug: false};
gulp.src('./behat/*/.php').pipe(behat('./vendor/bin/behat',options));
});
// option 3: supply callback to integrate something like notification (using gulp-notify)
var gulp = require('gulp'),
notify = require('gulp-notify'),
behat = require('gulp-behat'),
_ = require('lodash');
gulp.task('behat', function() {
gulp.src('behat.yml')
.pipe(behat('', {notify: true}))
.on('error', notify.onError(testNotification('fail', 'behat')))
.pipe(notify(testNotification('pass', 'behat')));
});
function testNotification(status, pluginName, override) {
var options = {
title: ( status == 'pass' ) ? 'Tests Passed' : 'Tests Failed',
message: ( status == 'pass' ) ? '\n\nAll tests have passed!\n\n' : '\n\nOne or more tests failed...\n\n',
icon: __dirname + '/node_modules/gulp-' + pluginName +'/assets/test-' + status + '.png'
};
options = _.merge(options, override);
return options;
}
`
If you want a quick and dirty gulpfile, here is one I created for testing this plugin
Gist: https://gist.github.com/mikeerickson/9163621
from command line
and all defaults will be used (based on behat.yml configuration)#### behatpath
Type:
StringThe path to the desired Behat binary
- If not supplied, the defeault path will be ./vendor/bin/behat
#### options.paths
Type:
StringClear console before executing command
paths Optional path(s) to execute. Could be:
- a dir (features/)
- a feature (*.feature)
- a scenario at specific line (*.feature:10).
- all scenarios at or after a specific line (.feature:10-).
- all scenarios at a line within a specific range (*.feature:10-20).
- a scenarios list file (*.scenarios).
#### options.suite
Type:
StringOnly execute a specific suite.
#### options.format
Type:
StringHow to format tests output. pretty is default.
#### options.out
Type:
StringWrite format output to a file/directory
#### options.formatSettings
Type:
StringSet formatters parameters using json object.
#### options.lang
Type:
StringPrint output in particular language.
#### options.name
Type:
StringOnly executeCall the feature elements which match part
#### options.tags
Type:
StringOnly executeCall the features or scenarios with tags
#### options.role
Type:
StringOnly executeCall the features with actor role matching a wildcard.
#### options.definitions
Type:
StringPrint all available step definitions.
#### options.strict (default: false)
Type:
BooleanPasses only if all tests are explicitly passing.
#### options.rerun (default: false)
Type:
BooleanRe-run scenarios that failed during last execution.
#### options.stopOnFailure (default: false)
Type:
BooleanStop processing on first failed scenario.
#### options.dryRun (default: false)
Type:
BooleanInvokes formatters without executing the tests and hooks.
#### options.colors (default: true)
Type:
BooleanEnables ansi colors (if not supplied it will be used by default)
#### options.profile
Type:
StringSpecify config profile to use.
#### options.config
Type:
StringSpecify config to use.
#### options.customOptions
Type:
ObjectSpecify custom options, e.g. added by an extension. The property is the option name, the value is the option value (e.g.: customOptions: { 'parallel-process': 10 }).
Plug Options
#### options.debug
Type:
Boolean (Default: false)Emit error details and shows command used in console
#### options.clear
Type:
Boolean (Default: false)Clear console before executing command
#### options.notify
Type:
Boolean (Default: false)Call user supplied callback to handle notification (use gulp-notify)
Changelog
- 0.4.2 Source Typo
- Fixed a source code typo (happy fingers I guess)
- 0.4.1 Small Updates
- Added missing opt.format setter
- 0.4.0 Added Plugin Resources
- Added new icons for pass and fail which can be used by notify plugin (see example below for usage)
/assets/test-pass.png
/assets/test-fail.png
- 0.3.3: Bug Fixes and Optimization
* Fixed issues with
paths option
* Fixed issue with multiple execution (#2)- 0.3.2: Fixed ansi color issues
* Added
colors option
* Removed no-ansi and ansi options (deprecated with Behat 3, use colors`)- 0.3.1: Added Travis CI Integration
- 0.3.0: Now supports Behat 3 (see tag 0.2.0 for Behat 2.x support)
- 0.2.0: Tagged to support Behat 2, future development will focus on Behat 3
* Created tag for Behat 2 support (all future development will be on the 0.3 branch)
- 0.1.0: Prepared projects to branch into separate version for Behat 2 / Behat 3 support.
- 0.0.6: Added more behat options
* Added dryRun
* Added silent
- 0.0.5 Fixed some README issues
- 0.0.3: Initial Release
gulp-behat written by Mike Erickson
E-Mail: codedungeon@gmail.com
Twitter: @codedungeon
Webiste: codedungeon.org