producer extensions like producer-rails must not reimplement all the
testing infrastructure, this extraction allows to setup everything with
just one require call in cucumber env:
require 'producer/core/testing/cucumber'
* Implement ArubaProgramWrapper in cucumber env;
* Tag a few features to not use the wrapper as aruba doesn't support yet
interactive testing with in process mode, and reported program name
will not be the correct one;
* Assign required standard streams to CLI and Env classes.
It was initially added to allow reuse of aruba cucumber steps, using
`must' instead of `should'. This is creating more harm than good, hence
we remove it and implements all missing steps, using aruba API.
Fork an sshd server available for the duration of the scenario.
$HOME will be set to aruba temporary directory, and a custom ssh
config will be written so that the test server is accessible with the
alias `some_host.test'. sshd will listen on port 2222 by default, this
can be overridden by setting DEFAULT_LISTEN_PORT environment variable to
the desired port.
Cucumber chomp the last \n from multiline strings (docstrings), this
monkey patch modify Cucumber::Ast::DocString constructor to add the
missing ending new line character and
Cucumber::Formatter::Pretty#doc_string to remove it from the output.