RUTL

TravisCI CircleCI Coverage Status Gem Version

This is the Ruby Ui Test Library, or RUTL. Not to be confused with The Rutles.

Framework goals:

  • Define what's on a page in an easy, flexible way. Easy page objects!
  • Abstract away things that make tests buggy and painful to maintain.
  • Write test cases for native apps, the web, and desktop apps the same way.
  • Make screenshotting and diffing screenshots sane and easy.
  • TODO: I'm sure I'm missing some at the moment.
  • Secondary-ish goal: Make fake browser to test the framework faster.
  • Tertiary-ish: Stop calling browser "fake" because I'm sick of that word. Null!

Installation

Add this line to your application's Gemfile:

```ruby
gem 'rutl'
```

And then execute:

$ bundle

Or install it yourself as:

$ gem install rutl

Usage

TODO: Write usage instructions here

Roadmap

Coming up soon in almost no order:

  • A test framework should have better tests. Goes with next bullet.
  • Flesh out null interface/driver. Make them do what a real browser does.
  • Restructure tests to handle fake browsers and real browsers. Same structure?
  • Make this work with pages files in some other location so we can use it as a gem.
  • Put more info in this readme.
  • Take screenshots.
  • Diff screenshots. Make this smart so we don't have to be experts.
  • The webdriver gem should already include InternetExplorerDriver. Maybe run tests on AppVeyor.
  • Other browser drivers? Look at https://github.com/fnando/browser
  • Get this working with Appium:
    • Make TK app to test on desktops and test it.
    • Can Ruby TK create accesible apps?
    • Make Android example app and get this to work.
    • Corboba?
    • Same with iPhone.
    • Same Cordoba test app?
  • Others?
  • Spidering page object maker.
  • Possibly pair the null browser with auto-generated pages for ______?
  • Call rutl.rb properly.
  • Optional install of test resources based on machine type.
  • Instructions about machine installs to help people using gem.
  • Pair with some kind of VM, Docker container, AMI, or something.

Development

Set everything up:

1. Check out the repo.
2. `cd` to the repo.
3. `bundle install`
4. `bundle exec rake`

Great! You've checked out the code, installed everything and run the tests.

Rubocop. I still have to tweak what I want it to complain about. bundle exec rubocop

To install this gem onto your local machine, run bundle exec rake install. To release a new version, update the version number in version.rb, and then run bundle exec rake release, which will create a git tag for the version, push git commits and tags, and push the .gem file to rubygems.org.

Contributing

Bug reports and pull requests are welcome on GitHub at https://github.com/drewcoo/rutl.

License

The gem is available as open source under the terms of the MIT License.