Package Exports
- grunt-phantomflow
This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (grunt-phantomflow) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.
Readme
Unmaintained notice: As of December 22nd 2017 this project will no longer be maintained. What started out as a creative experiment four years ago became a significant tool in Huddle's Web development workflow, as well as the workflows of external Web engineers. But like PhantomCSS, its time to move on.
grunt-phantomflow
A grunt plugin for PhantomFlow
Grunt
Basics
This plugin requires Grunt ~0.4.2
If you are unfamilar with Grunt check out the Getting Started guide, as it explains how to create a Gruntfile as well as install and use Grunt plugins.
npm install grunt-phantomflow --save-dev
Once the plugin has been installed, it may be enabled inside your Gruntfile with this line of JavaScript:
grunt.loadNpmTasks('grunt-phantomflow');
Setup
grunt.config.set('phantomflow', {
app: {
/*
How many threads would you like to parallelise on?
Default value is 4
*/
threads: 4,
/*
Any command line options to be passed down to casper?
Example: ['--cookies-file=testcookies.txt']
Default value is []
*/
casperArgs: [],
/*
Should a report/visualisation be generated after
the test run? Default value is false
*/
createReport: false,
/*
Should the report output live somewhere else, e.g. for
proxying through a real webserver?
Example: '../visualtest/htdocs'
Default value is undefined.
If unset, the default set by PhantomFlow will be used.
*/
reports: null,
/*
Do you have scripts to include?
Default value is ./include
*/
includes: './include',
/*
Where do the tests live?
Default value is ./test
*/
tests: './test',
/*
Where should the results go?
Default value is ./test-results
*/
results: './test-results',
/*
Hide elements in the page
*/
hideElements: ['img', 'input']
}
});
Command line parameters
Running a specific test
If you're working on a test you can use the test
parameter to run a specific test file. The value can be a substring of the file name. Please note that test filenames should follow the *.test.js naming convention.
grunt phantomflow:websitetests --test=mytestfile
Reporting
To show the PhantomFlow visualisation use the 'report' param. You need to have previously generated a report by setting the createReport option to true. Tests will not be executed when the 'report' param is used. The previously generated visualisation will open in your browser.
grunt phantomflow:websitetests --report
Multithreading
By default phantomflow will divide and execute groups of tests concurrantly on different threads. By default this is 4 threads
Use the thread parameter to increase the amount of threads and reduce the feedback time.
grunt phantomflow:websitetests --threads=8
Debugging
Show more logging: grunt phantomflow:websitetests --debug=1
Save screenshots and show more logging: grunt phantomflow:websitetests --debug=2
By default phantomflow will not abort when a test fails, set the earlyexit
parameter to true stop the tests upon seeing the first failure.
grunt phantomflow:websitetests --earlyexit=true
Remote debugging using Web Inspector.
PhantomJS supports remote debugging. The following grunt options allow you to start phantom with the correct options.
grunt.config.set('phantomflow', {
app: {
remoteDebug: true, // default false
remoteDebugAutoStart: false, // default false,
remoteDebugPort: 9000 // default 9000
}
});
Overview
In your project's Gruntfile, use either grunt.initConfig( {} )
or grunt.config.set( 'phantomflow', {} )
.
var phantomflowConfig = {
test: {
tests: '/mytests'
},
report: {} // this task is reserved for reporting only
};
grunt.initConfig({
decision: phantomflowConfig
};