Skip to content
This repository

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP

CLI Steps for Cucumber

branch: master
README.rdoc

aruba

Cucumber steps for driving out command line applications. The command line application can be anything, a compiled C program, a Java program, a Perl script - anything.

Usage

gem install aruba

Then, just require the library in one of your ruby files under features/support (e.g. env.rb)

require 'aruba/cucumber'

You now have a bunch of step definitions that you can use in your features. Look at aruba/cucumber.rb to see all the step definitions. Look at features/*.feature for examples (which are also testing Aruba itself).

Tags

Aruba has tags you can put on on individual scenarios, or on a feature.

To get more information use these tags:

  • @announce-cmd - See what command is is run

  • @announce-stdout - See the stdout

  • @announce-stderr - See the stderr

  • @announce-dir - See the current directory

  • @announce-env - See environment variables set by Aruba

  • @announce - Does all of the above

To prevent Aruba from removing its working directory before each scenario:

  • @no-clobber - Don't cleanup before scenarios

Runtime Configuration

Per default Aruba will create a directory tmp/aruba where it performs it's file operations. If you want to change this behaviour put this into your features/support/env.rb:

Before do
  @dirs = ["somewhere/else"]
end

Set @aruba_timeout_seconds to control the amount of time Aruba will wait for a process to finish running before terminating it:

Before do
  @aruba_timeout_seconds = 5
end

Running processes interactively can result in race conditions when Aruba executes an IO-related step but the interactive process has not yet flushed or read some content. To help prevent this Aruba waits before reading or writing to the process if it is still running. You can control the wait by setting @aruba_io_wait_seconds to an appropriate value. This is particularly useful with tags:

Before('@slow_process') do
  @aruba_io_wait_seconds = 5
end

Note on Patches/Pull Requests

  • Fork the project.

  • Make your feature addition or bug fix.

  • Add tests for it. This is important so I don't break it in a future version unintentionally. Note: the existing tests may fail with pre-1.9 versions of ruby; upgrade to get clean runs.

  • Commit, do not mess with rakefile, version, or history. (if you want to have your own version, that is fine but bump version in a commit by itself I can ignore when I pull)

  • Send me a pull request. Bonus points for topic branches.

Copyright

Copyright © 2010 Aslak Hellesøy and David Chelimsky. See LICENSE for details.

Something went wrong with that request. Please try again.