Visual Regression Testing for Storybook
There are a few visual regression tools for the web, but most either cannot be run headless or use phantomjs which is deprecated and a browser nobody is actually using. They usually also require you to maintain fixtures. With react-native it's now possible to target multiple platforms with a single code base, but there's no single tool to test all to my knowledge.
Loki aims to have easy setup, no to low maintenance cost, reproducible tests independent of which OS they are run on, runnable on CI and support all platforms storybook does.
- Chrome in docker (recommended)
- Chrome in AWS Lambda
- Local Chrome application
- iOS simulator
- Android emulator
GraphicsMagick for gm diffing engine,
brew install graphicsmagick
Docker for the
Chrome 59+ for the
brew cask install google-chrome-canary.
yarn add loki --dev yarn loki init
Loki will not start any servers for you, so ensure storybook and any simulator/emulator is up and running before running tests.
- Start storybook server
- Add first set of reference files
yarn loki update
- Do some changes to your components
- Test against references
yarn loki test
- Review changes in diff folder
- Approve changes and update references
yarn loki approve
# Install dependencies yarn # Start example storybook yarn workspace @loki/example-react run storybook # Run example visual tests yarn workspace @loki/example-react run test # Run unit tests yarn test # Run cli integration tests cd test/cli && yarn test
Tomas Echeverri Valencia
MIT License. © Joel Arvidsson 2017-present