Previously, the `cap -T` command assumed the presence of the
`load:defaults` task. This task is only present if a proper Capfile is
loaded, and so `cap -T` wouldn't work in a new, not yet "capified"
project.
This commit fixes the bug by testing that `load:defaults` is defined
before calling it.
Previously, a fully-configured app was used as the background for the
`cap install` feature tests. This somewhat defeated the purpose of these
tests, because `cap install` is supposed to be run on a project that
hasn't yet been "capified".
This commit removes the existing 'local' integration tests and replaces
them with Cucumber features running against VMs. At this stage,
some of the assertions are pending due to the limited nature of the
response returned when executing commands through Vagrant, but the
framework is there as a starting point to build upon.
To run the suite:
bundle exec cucumber
During development, avoid scraping the VM between runs:
bundle exec cucumber KEEPING_RUNNING=1
Ultimately I would like to see the `TestApp` helpers along with the Vagrant
integration packaged and available for use when developing gems that work with
Cap. For now though, this closes#641