mimosa-phantomcss v0.6.2
mimosa-phantomcss
Overview
This module provides a simple execution wrapper around PhantomCSS. It includes everything needed to get started without having to install PhantomJS, CasperJS and PhantomCSS globally.
Usage
Add
'mimosa-phantomcss'to your list of modules.Run
mimosa phantomcss:gento create example test(s) inassets/javascripts/tests/visual.Run
mimosa phantomcss. The test(s) created by step 2 should be found and executed.
Need to execute just a few specific tests?
Run mimosa phantomcss [filters] to execute specific tests. Note that [filters] is a just space-delimited series of glob fragments, so you've got (almost) as much flexibility as glob will allow.
Examples
Execute only files named navigation_test.js
$ mimosa phantomcss navigation
13:47:41 - Info - mimosa-phantomcss: Filtering tests by navigation
13:47:41 - Info - mimosa-phantomcss: Starting assets/javascripts/test/visual/navigation_test.js...
13:47:41 - Info - mimosa-phantomcss: Starting assets/javascripts/test/visual/login_page/navigation_test.js...
13:47:41 - Info - mimosa-phantomcss: Starting assets/javascripts/test/visual/profile_page/logged_in/navigation_test.js...
13:47:41 - Info - mimosa-phantomcss: Starting assets/javascripts/test/visual/profile_page/anonymous/navigation_test.js...Execute every file in folder named login_page
$ mimosa phantomcss login_page/
13:47:41 - Info - mimosa-phantomcss: Filtering tests by login_page/
13:47:41 - Info - mimosa-phantomcss: Starting assets/javascripts/test/visual/login_page/navigation_test.js...
13:47:41 - Info - mimosa-phantomcss: Starting assets/javascripts/test/visual/login_page/left_column_test.js...
13:47:41 - Info - mimosa-phantomcss: Starting assets/javascripts/test/visual/login_page/middle_column_test.js...
13:47:41 - Info - mimosa-phantomcss: Starting assets/javascripts/test/visual/login_page/right_column_test.js...
13:47:41 - Info - mimosa-phantomcss: Starting assets/javascripts/test/visual/login_page/footer_test.js...Execute only the file navigation_test.js inside of folder login_page
$ mimosa phantomcss login_page/navigation
13:47:41 - Info - mimosa-phantomcss: Filtering tests by login_page/navigation
13:47:41 - Info - mimosa-phantomcss: Starting assets/javascripts/test/visual/login_page/navigation_test.js...Execute every file in folder login_page and all files named left_column_test.js
$ mimosa phantomcss login_page/ left_column
13:47:41 - Info - mimosa-phantomcss: Filtering tests by login_page/, left_column
13:47:41 - Info - mimosa-phantomcss: Starting assets/javascripts/test/visual/login_page/navigation_test.js...
13:47:41 - Info - mimosa-phantomcss: Starting assets/javascripts/test/visual/login_page/left_column_test.js...
13:47:41 - Info - mimosa-phantomcss: Starting assets/javascripts/test/visual/login_page/middle_column_test.js...
13:47:41 - Info - mimosa-phantomcss: Starting assets/javascripts/test/visual/login_page/right_column_test.js...
13:47:41 - Info - mimosa-phantomcss: Starting assets/javascripts/test/visual/login_page/footer_test.js...
13:47:41 - Info - mimosa-phantomcss: Starting assets/javascripts/test/visual/profile_page/logged_in/left_column_test.js...
13:47:41 - Info - mimosa-phantomcss: Starting assets/javascripts/test/visual/profile_page/anonymous/left_column_test.js...Need to run tests synchronously?
Run mimosa phantomcss -s to have the tests execute one at a time and wait for one to finish before starting the next one. This is obviously going to be slower, but may prevent long-running tests from timing each other out.
Need to rebuild the entire baseline?
Run mimosa phantomcss -r to rebuild all baseline screenshots located in the screenshot directory.
Caution: This command deletes all of the
.pngfiles in the directory identified bymimosaConfig.phantomcss.screenshotDirectory.
Need to remove the .diff and .fail files?
Run mimosa phantomcss:clean to remove all of the comparison images from the screenshot directory.
This can also optionally be done by using the -c flag with the regular run command, e.g., mimosa phantomcss -c
Need to see the raw CasperJS output?
Either set mimosaConfig.phantomcss.verbose to true or use the -v flag, e.g., mimosa phantomcss -v.
Functionality
mimosa-phantomcss will search the directory identified by mimosaConfig.phantomcss.testDirectory and execute any test scripts it finds, based on the file extension and name suffix.
As an example, all of the following files would be found and automatically executed:
path/to/tests/foo_test.jspath/to/tests/foo_test.coffeepath/to/tests/foo_spec.jspath/to/tests/foo_spec.coffeepath/to/tests/bar/boo/baz/foo_test.js
These scripts are essentially CasperJS scripts, so everything that you'd expect to be able to do in CasperJS should work.
Default Config
phantomcss: {
verbose: false,
synchronous: false,
enabledOnBuild: true,
shouldStopBuildOnFailure: true,
testDirectory: 'assets/javascripts/tests/visual',
testPattern: '**/*{test,spec}.{js,coffee}',
filteredTestPatternTemplate: '**/____FILTERS____*{test,spec}.{js,coffee}',
screenshotDirectory: '.mimosa/phantomcss/screenshots',
executionOptions: [],
libraries: {
casperjs: '/path/to/mimosa-phantomcss/node_modules/phantomcss/node_modules/casperjs',
phantomcss: '/path/to/mimosa-phantomcss/node_modules/phantomcss',
phantomjs: '/path/to/mimosa-phantomcss/node_modules/phantomcss/node_modules/phantomjs'
}
}phantomcss.verbose boolean
Setting this property to true will always print out the raw CasperJS output to the console. This is the same as running every time with the -v flag.
phantomcss.synchronous boolean
Setting this property to true will always run tests synchronously. This is the same as running every time with the -s flag.
phantomcss.enabledOnBuild boolean
Setting this property to true will execute your tests at the end of a mimosa build operation.
Note: You will most likely want to use this in concert with mimosa-build-task to start a server so you can test
phantomcss.shouldStopBuildOnFailure boolean
Setting this property to true will cause the build to break when there are test failures.
phantomcss.testDirectory string
This is the directory where your PhantomCSS test scripts live.
phantomcss.testPattern string
A glob that will be used to find the test script files to be executed.
phantomcss.filteredTestPatternTemplate string
A glob that will be used to find the test script files whenever a filtered execution is specified.
phantomcss.screenshotDirectory string
This is the directory where you will be creating screenshots.
Caution: Running
mimosa phantomcss -rdeletes all of the.pngfiles in this directory.
phantomcss.executionOptions string[]
This lets you specify any command-line options to be passed to CasperJS/PhantomJS, e.g.,
executionOptions: ['--ignore-ssl-errors=true', '--cookies-file=/path/to/cookies.txt']phantomcss.libraries.casperjs string
This is the path where the CasperJS node module lives.
phantomcss.libraries.phantomcss string
This is the path where the PhantomCSS node module lives.
phantomcss.libraries.phantomjs string
This is the path where the PhantomJS node module lives.