Howitzer
Howitzer is Ruby based framework for acceptance testing.
Initially it was developed for testing of web applications, but it is applicable to testing of web services or some API as well. The framework uses modern patterns, techniques and tools in automated testing area. For details, please see Test Framework Design.
Key benefits
- Independent of test web application, its technologies and lanquage.
- Deploy all test infrastructure for 5 minutes.
- Flexible test framework configuration.
- Ability to choose desired BDD tool (Cucumber or RSpec)
- Itegration with SauceLabs, Testingbot and Mailgun web services.
- Easy to support tests in actual state.
- Ability to execute tests against to both browserless driver and actual browsers with no changes in your tests.
- Ability to check all links are valid
Documentation
See GETTING_STARTED how to work with howitzer.
Also you can find Rdoc documentation on Rubygems.
Related products
- Howitzer Example - Demo Rails application and Acceptance tests
- Howitzer Stat - Howitzer extension for test coverage visualization of web web pages
Requirements
- Supported OS: Mac OS X, Linux, Windows
- Ruby 1.9.3+
- DevKit(For Windows only)
- PhantomJS
- ChromeDriver
Setup
To install, type
gem install howitzer
Usage
navigate to desired directory where new project will be created
To deploy the framework with Cucumber, type:
howitzer new <PROJECT NAME> --cucumber
This command will generate next folders and files:
config/
cucumber.yml
default.yml
custom.yml
tasks/
common.rake
cucumber.rake
rspec.rake
emails/
example_email.rb
features/
support/env.rb
step_definitions/common_steps.rb
example.feature
pages/
example_page.rb
.rb
boot.rb
Gemfile
Rakefile
.gitignore
With Rspec:
howitzer new <PROJECT NAME> --rspec
With both the ones:
howitzer new <PROJECT NAME> --cucumber --rspec
Configuration
Learn and specify correct default settings in config/default.yml
file. For details, please see original sexy_settings gem.
Test implementation workflow
- Prepare Features and Scenarios
- Implement appropriate pages in
pages
folder. For details, see Page Object Pattern. - Implement emails in
emails
folder. - Implement scenarios:
- Cucumber:
- Read and learn Cucumber Best Practices
- Implement step definitions in
features/step_definitions/common_steps.rb
file. - Rspec: Use DSL provided by Capybara for creating descriptive acceptance tests
- Debug feature against to desired driver.
- Enjoy it!
Rake tasks
You can list all available tasks with next command
rake -T
More information
Contributing
- Fork it
- Create your feature branch (
git checkout -b my-new-feature
) - Commit your changes (
git commit -am 'Added some feature'
) - Push to the branch (
git push origin my-new-feature
) - Create new Pull Request