gulp-galenframework
v2.4.4
Published
Gulp plugin for Galen Framework
Downloads
140
Maintainers
Readme
Gulp plugin for the Galenframework
Galen allows automated testing of look and feel for your responsive websites.
Gulp plugin for Galen testing framework
Donation
Feel free to donate via Paypal or Bitcoins : bitcoin:3NKtxw1SRYgess5ev4Ri54GekoAgkR213D
Also via greenaddress
This module downloads the GalenFramework for you
Warning - Galen framework requires Java runtime environment to work. Java is not included in this module.
Installation
npm install --save-dev gulp-galenframework
Or the develop build, which maybe not be stable
npm install --save-dev gulp-galenframework@next
If this doesn't want to use the provided galen version use the galenPath
option to specify the
correct path:
gulpGalen.check({galenPath: '/some/other/path/to/galen'})
Bundling Galen
When you're not using the --production
mode you can use the bundeled galen by using the
galenPath
option:
gulpGalen.check({galenPath: './node_modules/gulp-galenframework/node_modules/.bin/galen'})
Another alternative it to add galenframework-cli
into you project's dependencies:
npm install galenframework-cli --save
Then you could use the galenPath
option as follows:
gulpGalen.check({galenPath: './node_modules/.bin/galen'})
Usage
var gulpGalen = require('gulp-galenframework');
This provides three gulp stream constructors:
gulpGalen.dump(options, processOptions)
: creates a page dump.gulpGalen.check(options, processOptions)
: runs a speficied .gspec aganst a given url.gulpGalen.test(options, processOptions)
: runs a test against a given testsuite (JavaScript based or Galen test suite style)
Options
All String options support some simple placeholders to be filled with information about the current file:
{basename}
: The current file'spath.basename()
{relative}
: The current file's relative file name{path}
: The current file's full path
This might especially be useful when generating repots. Example:
gulpGalen.check((htmlreport: "reports/{relative}"))
dump
options
url
: a URL of page for Galen to test onsize
: a browser window size, e.g. "1024x768"export
: a path to page dump foldermax-width
: a maximum width of an element for which it should create an image samplemax-height
: a maximum height of an element for which it should create an image sample
check
options
url
: a URL of page for Galen to test onjavascript
: a path for javascript file which Galen will inject in web pagesize
: dimensions of browser window. Consists of two numbers separated by “x” symbolinclude
: a comma separated list of tags for spec sections which will be included in testingexclude
: a comma separated list of tags for spec sections to be excluded from the filtered group
test
options
parallel-tests
: amount of threads for running tests in parallelrecursive
: flag which is used in case you want to search for all .test files recursively in folderfilter
: a filter for a test namegroups
: run only specified test groupsexcluded-groups
: exclude test groups
global options
This options apply to both check
and test
.
galenPath
: if other then /usr/local/bin/galencwd
: change the working directory for the created processesproperties
: an object specifing properties (likegalen.browserFactory.selenium.grid.url
) to pass into galenhtmlreport
: path to folder in which Galen should generate HTML reportstestngreport
: path to xml file in which Galen should write TestNG reportjunitreport
: path to xml file in which Galen should write JUnit reportjsonreport
: path to folder in which Galen should generate JSON reportsparallel
: Allow multiple parallel galen processes (not to confuse withparallel-tests
doing the parallelization in one galen process)
Examples
Run some gspec against google.com:
var gulpGalen = require('gulp-galenframework');
gulp.task("test:galen", function(done) {
gulp.src('test/galen/**/*.gspec').pipe(gulpGalen.check({
url: 'https://www.google.com',
cwd: 'test/galen/'
}, done));
});
Run some JavaScript based test suites:
var gulpGalen = require('gulp-galenframework');
gulp.task("test:galen", function(done) {
gulp.src('test/galen/**/*.js').pipe(gulpGalen.test({}, done));
});
Run some JavaScript based test suites against a Selenium Grid:
var gulpGalen = require('gulp-galenframework');
var galenProperties = {
'galen.browserFactory.selenium.runInGrid': true,
'galen.browserFactory.selenium.grid.url': 'http://example.com:4444/wd/hub'
};
gulp.task("test:galen", function(done) {
gulp
.src('test/galen/**/*.js')
.pipe(gulpGalen.test({
'htmlreport': __dirname + '/reports/layout-tests',
'properties': galenProperties,
'cwd': 'test/galen/'
}, done));
});
Test locally created files
var gulp = require('gulp'),
connect = require('connect'),
http = require('http'),
serveStatic = require('serve-static'),
gulpGalen = require('gulp-galenframework');
...
gulp.task('layout-tests', function (cb) {
var app = connect().use(serveStatic('dist')),
server = http.createServer(app).listen(8888, function () {
gulp.src('test/layout/local.test').pipe(
gulpGalen.test({
cwd: 'test/layout',
htmlreport: '../../target/galen-report',
junitreport: '../../target/reports/TESTS-Galen.xml'
})).on('end', function () {
server.close(function () {
cb();
});
});
});
});