Hello.

Sometimes it is nice to compare two images with one another. We find this particularly handy for testing browser screenshots.

With Symilaa, this is particularly easy.

1. How to do it.

one = Symilaa::Image.new 'image.png'
two = Symilaa::Image.new 'slightly_different_image.png'
three = Symilaa::Image.new 'very_different_image.png'

one == one
#=> true
one == two
#=> false
one.similar_to? two
#=> true
one.similar_to? three
#=> false

That's it. Have a nice life.


ComparisonSupport also provides a module for use with Cucumber testing.

Use ComparisonSupport#check_screen_against_reference_shot to take a screenshot of the current page under test and compare it with an existing reference screenshot.

NOTE

You must include the following in your features/support/env.rb:

Before do |scenario|
  @gherkin_statement = scenario.gherkin_statement.name if scenario.respond_to?('gherkin_statement')
  @gherkin_statement = scenario.scenario_outline.gherkin_statement.name if scenario.respond_to?('scenario_outline')
end

FileUtils.rm_rf 'artifacts/screenshots_generated_this_run'