Aruba testing

Adding Cucumber testing to metasploit framework

## Caution
this adds two new rake tasks, features:boot moves your database.yml to database.yml.local
This should not effect anything in framework its just a new test suite for travis-ci, its also a little fragil.

## Verification steps
 - [ ] `bundle install`
 - [ ] `rake features` this should have nothing but green output
 - [ ] `rake features:boot` this should also pass

This is adding a very limited UI testing for msfconsole
This tests
 - that we can load a module
 - that ms08-067 has a given set of options
 - that ms08-067 has a given set of advanced options
 - that the help command has output
 - that we can load msfconsole without a database.yml
 - that we can load msfconsole with a database.yml that points to a database that isnt there

These tests are fragil and not the best solution but it should work for a limited set of functionality.
in my mind msfconsole isn’t interacted with from the command line, it’s interacted with via it’s console, which is launched via the CLI.  msfcli is interacted with from the command line.  If you capture msfconsole I/O then you can test that msfconsole is doing what it’s supposed to.  That contents display on a TTY is another matter, for instance some support color and some don’t, but you don’t want the particulars of the TTY disrupting the testing.  

Regardless tho, I’d just be excited to see any useful cucumber etc testing

On Aug 27, 2014, at 11:49 AM, Jon Hart <notifications@github.com> wrote:

> In lib/tasks/cucumber.rake:
> 
> > +  require 'cucumber/rake/task'
> > +
> > +
> > +  Cucumber::Rake::Task.new(:features) do |t|
> > +    t.cucumber_opts = 'features --format pretty'
> > +    t.profile = 'default'
> > +  end
> > +
> > +  namespace :features do
> > +    Cucumber::Rake::Task.new(:boot) do |t|
> > +      t.profile = 'boot'
> > +    end
> > +  end
> > +
> > +rescue LoadError
> > +  puts "cucumber not in bundle, so can't set up feature tasks.  " \
> Well, its either that or stdout. If you are printing directly to the console, IMO you should use the proper output streams so that shell-foo can be used to filter unwanted output. Just a general good practice for anything interacted with from a command line.
> 
> —
> Reply to this email directly or view it on GitHub.
>