A lightweight framework for regression testing of Cascading Style Sheets.
One picture says more than 1000 words:
Need more than 1000 words? Watch the screencast or checkout CSS Critic Examples for a hands-on experience with example applications that have their UI tested. Fast forward to see it in action testing the TodoMVC application.
Your web stack should be fully testable - even your UI including CSS. CSS Critic can shine here. For example let it supervise changes to your project's styleguide so you know things are looking good.
$ npm install csscritic
See node_modules/csscritic/example/RegressionRunner.html
for an example on how to take it from there.
CSS Critic checks your current layout constantly against a reference image you have provided in the past. If your layout breaks (or simply changes - CSS Critic can't tell) your tests fail.
Get started:
-
Create a
RegressionRunner.html
similar to the one underexample/
and put it with your code that is to be tested. -
Register your page under test via:
csscritic.add(PUT_THE_PAGE_URL_HERE); csscritic.execute();
-
Open the RegressionRunner.html in Firefox for the first time and save the resulting image as future reference.
-
Re-run the RegressionRunner.html and see your test passing. Congratulations.
What do I do if my test fails?
-
Have a look at the diff image and visually check what has changed.
-
If the change is an unwanted one fix your CSS,
-
If deliberate generate a new reference image.
For linting, tests and minification install Node.js and run
$ ./go
- Works in Firefox only (alternatively see the experimental CLI runner)
- Same-origin restrictions apply when sourcing files. All files referenced need to be inside the same directory as the
RegressionRunner.html
or in ones below. - Because of the way the HTML is rendered to the canvas inside the browser form inputs and certain more esoteric pages might fail to render correctly. Here the CLI runner can be of some help as it uses the native interface to render pages.
For more information see the FAQ and API.
Licensed under MIT. Maintained by @cburgmer. Copyright (c) 2012, 2013 ThoughtWorks, Inc.