Project

magneton

0.02
No commit activity in last 3 years
No release in over 3 years
There's a lot of open issues
A simple gem to generate all files needed in a project that will support Cucumber, SitePrism, Capybara and Selenium.
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
 Dependencies

Runtime

~> 1.7
= 2.12.2
~> 0.6
~> 10.0
~> 0.19
 Project Readme

MAGNETON Circle CI Code Climate Test Coverage Issue Count Gem Version

A simple gem to generate web automation project with:

Cucumber (link)

Capybara (link)

SitePrism (link)

Selenium Webdriver (link)

The structure is based on three layers: features, steps and pages.

  1. Features: Contains all the features of the project;
  2. Steps: Contains all the steps implementations;
  3. Pages: Contains all the pages in the website. A page must contain the declaration of all the elements of the page and the declaration of its actions.

Instalation

Install it as:

$ gem install magneton

Usage

In the terminal, type for help:

  magneton

To see the gem version type:

  magneton version

To generate a project type:

  magneton new ProjectName

Windows Caveats

If you face encoding problems, type:
[HKEY_CURRENT_USER\Software\Microsoft\Command Processor] "AutoRun"="chcp 65001"

This command will ensure your terminal is always using Unicode.

Localized Project Generation

This command will create a folder named ProjectName in the current directory and will create all the needed files. This gem support localizations. To create a localized project, in Portuguese, type:

  magneton new ProjectName --lang=pt

The default language is English ('en'). The elements of Gherkin such as Given, When, Then, And, Scenario will be translated to all Gherkin supported languages, but this gem has just a few translation files (see that in folder: lib/magneton/locales).

MAGNETON doesn't support your mother language? No problem. Fork it, create your yml translation file, uses the en.yml file as a template. Translate it and make a pull request. There are only 15 lines to be translated, this will take no time.

Want to know how to name your translation yml file? See the Gherkin supported languages here for reference.

Once the project is created, open its folder (cd ProjectName) and run bundle install

There are three generators that are responsible to create the templates for Features, Step definitions and Pages.

The generators commands ONLY WORK in the ROOT FOLDER of the project.

Features

  magneton generate feature FeatureName

The feature generator will create a feature and its files. So this command will create the FeatureName.feature file inside the folder features/specifications, the file FeatureName_steps.rb inside the folder features/step_definitions, the files FeatureName_page.rb inside the folder features/pages.

Steps

  magneton generate step StepName

The step generator will create a step file named StepName_steps.rb in the folder features/step_definitions

Pages

  magneton generate page PageName

The page generator will create a page file named PageName_page.rb in the folder features/pages

Helpers

In the file features/support/helper.rb you will find utilities to help your tests.

Implemented so far:

  • take_screenshot
  • mouse_over
  • visual matching
  • crop screenshot
Visual Matching

You can compare images using the visual_matcher method: expect('imagem_atual').to visual_match('imagem_baseline')

You can create the baseline_images if you include the tag @create_baseline_image on your scenarios.

Crop screenshot

You can crop a screenshot around element, just only use take_screenshot_and_crop method: take_screenshot_and_crop(name_file, folder_to_save, css_selector)

TODO

  1. Run tests in Remote Server
  2. Add more base methods using Selenium

Contributing

  1. Fork it ( https://github.com/concretesolutions/magneton )
  2. Create your feature branch (git checkout -b my-new-feature)
  3. Commit your changes (git commit -am 'Add some feature')
  4. Push to the branch (git push origin my-new-feature)
  5. Create a new Pull Request