Angular automation is a collection of gems for webdriver automation. The angular_automation gem only refers to other gems, it doesn't provide any features by itself.
Gem | Description |
---|---|
rspec_flake | Measure test flakiness and performance. |
rspec_junit | JUnit xml reporter that works with rspec_flake |
angular_webdriver | Protractor client side scripts integrated with Ruby webdriver |
page_object_stubs | Page object stub generator for RubyMine |
sauce_ruby | Sauce labs gem with bug fixes |
trace_files | Tracing gem used for debugging |
pry | Pry is used for debugging |
rake | Rake is used for sauce tasks and the stub generation task |
page_object | Fork of the page-object gem with bug fixes and code coverage |
webdriver_utils | Util methods for webdriver such as waiting and page object helpers |
sauce-connect | Sauce connect is used for running locally (outside of jenkins) |
sauce_platforms | Dependency free DSL for specifying Sauce Labs platforms |
sauce_connect_ruby | Ruby example that uses all the angular_automation gems |
sauce_overage | Check available minutes before test execution to avoid overage charges |
Other gems used:
- selenium-webdriver - upstream selenium webdriver gem
- watir-webdriver - watir framework built on top of webdriver
- sauce_rspec - sauce gem replacement
- rspec-retry - used to retry failed jobs
- test-queue-split - used for per test parallel execution on Sauce
Note that the Sauce Connect gem should be avoided at all cost due to bugs such as crashing, infinite looping, and creating multiple processes. The recommended way is to use the Sauce Jenkins plugin to fully handle the SC lifecycle and avoid the broken Ruby sauce connect code.
The rspec_junit gem depends on rspec.
Use
require 'angular_automation'
The general use case is:
- Tests use the page_object gem with stubs & sauce labs integration
- Setup Jenkins with Sauce OnDemand plugin to use Sauce Connect & enable reporting
- make sure to check
Launch Sauce Connect on Slave
-
Sauce OnDemand support
must be checked - Export
SAUCE_USERNAME
andSAUCE_ACCESS_KEY
in execute shell -
rake sauce:spec
to run the tests in parallel - Use
rspec_junit
for JUnit xml output - Publish JUnit results in post build
-
Run Sauce Labs Test Publisher
in post build
- make sure to check
- An example of the setup is available in this repo