Galen allows automated testing of look and feel for your responsive websites.
Gulp plugin for Galen testing framework
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.
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'})
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'})
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)
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}"))
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
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
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
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)
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));
});
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));
});
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();
});
});
});
});