All notable changes to this project will be documented in this file.
This project adheres to Semantic Versioning.
This document is formatted according to the principles of Keep A CHANGELOG.
2.3.0 / 2024-11-22
- Allow passing frozen string as argument to
#type
(#909 by mikelkew) - Prepare for Ruby 3.3 (#914 by mvz)
- Support Ruby 3.0 and up, dropping support for Ruby 2.7 (#918 by mvz)
- Fix minitest setup code (#921 by mvz)
- Make
#have_output_size
work on a process, and deprecate its use with strings (#924 by mvz) - Freeze string literals by default (#929 by mvz)
- Use core cucumber event bus implementation, dropping Aruba's own (#930 by mvz)
- Introduce Cucumber parameter type 'command' (#941 by mvz)
- Improve failure messages for two steps (#943 by mvz)
2.2.0 / 2023-09-02
- Drop support for Ruby 2.5 (#836 by mvz)
- Add support for JRuby 9.4 (#882 by mvz)
- Support CRuby 3.2 (#883 by mvz)
- Improve
be_a_command_found_in_path
matcher and its tests (#895 by mvz) - Replace ChildProcess with Process.spawn (#891 and #892 by mvz)
- Support Cucumber version 9.0 (#904 by mvz)
- Drop support for Cucumber 4 through 7 ([#906] by mvz)
- Drop support for Ruby 2.6 ([#907] by mvz)
2.1.0 / 2022-05-20
- Support Cucumber 8 (#870 by mvz with dependabot)
2.0.1 / 2022-04-22
- Various cleanups of internal APIs (#838 by mvz)
- Make objects not pretend to be nil (#843 by mvz)
- Remove experimental variables replacement feature (#846 by mvz)
- Support Ruby 3.1 (#850 by mvz)
- Fix steps that wait for output from commands (#856 by mvz)
- Ensure
Gem.win_platform?
is available (#858 by mvz) - Support JRuby 9.3 (#867 by mvz)
2.0.0 / 2021-07-26
Potentially breaking changes:
- Bump miminum cucumber version to 4 (#814 by mvz)
- Drop support for Ruby 2.4 (#820 by mvz)
- Remove deprecated ability to append to non-existent file (#829 by mvz)
- Make absolute file name warning an error (#783 by mvz)
Other changes
- Use Ruby's built-in windows platform detection (#813 by mvz)
- Update some step definitions to use Cucumber Expression syntax (#822 by mvz)
- Update cucumber dependency to allow use of cucumber 7 (#828 by dependabot)
1.1.2 / 2021-06-20
1.1.1 / 2021-05-14
1.1.0 / 2021-04-14
- Add step and API to add whole lines to a file (#780 by mvz)
- Deprecate file creation when using
append_to_file
(#781 by mvz) - Update dependencies to cucumber to allow working with incoming major versions (#801 by mattwynne)
1.0.4 / 2021-01-04
- Update rubocop and fix new offenses (various pull requests)
- Turn off Cucumber publish warning in CI (#737 by olleolleolle)
- Move CI from Travis CI to GitHub Actions (#738 by mvz)
- Remove superfluous :each from before hooks in RSpec-related cucumber scenarios (#748 by mvz)
- Make disabling Bundler more robust (#750 by mvz)
- Officially support Ruby 3.0 (#763 by mvz)
- Clean up hook methods in configuration (#751 by mvz)
- Speed up RSpec suite (#767 by mvz)
- Speed up Cucumber suite (#766 and #771 by mvz)
- Remove obsolete
String#strip_heredoc
monkey-patch (#769 by mvz) - Simplify configuration option specification (#772 by mvz)
- Loosen Cucumber dependency to allow Cucumber 5.0 (#727 by mvz)
- Update rubocop and fix new offenses (#719 and #724 by mvz)
- Rework gemspec to avoid dependency on git (#721 by utkarsh2102, #725 by mvz)
- Fix RuboCop offenses (#693 and #708 by luke-hill, #710, #711 and #712 by mvz)
- Use recent Rake version in fixtures (#709 by mvz)
- Repair YARD annotations (#707 by olleolleolle)
- Support for Ruby 2.3 and lower has been dropped
- Deprecated functionality has been removed
- The home directory is set to aruba's working directory by default
- Update simplecov (#704 by mvz)
- Several cuke improvements (#703 by mvz)
- Find relative commands from the current Aruba directory (#702 by mvz)
- Update development dependencies (#701 by mvz)
- Clean up linting and fix environment nesting (#698 by mvz)
- Update build configuration (#696 by mvz)
- Fix cd behavior with absolute paths and home directory (#692 by mvz)
- Improve
expand_path
warnings (#687 by deivid-rodriguez) - Remove unneeded appveyor step (#690 by deivid-rodriguez)
- Fix travis.yml lint task (#689 by deivid-rodriguez)
- Fix cucumber deprecations (#688 by deivid-rodriguez)
- Update gemspec: Metadata and RDoc options (#686 by mvz)
- Update dependencies and fix RuboCop offenses (#683 by mvz)
- Init: Conditionally prefix the
gem aruba
line with a carriage return (#570 by xtrasimplicity) - Update supported set of rubies(#679 by mvz)
- Improve command failure message (#675 by deivid-rodriguez)
- Bump childprocess dependency (#674 by mvz)
- Suppress keyword argument warnings in Ruby 2.7 (#672 by koic)
- Refactor: Uncouple some of aruba's step definition code (#666 by luke-hill)
- Fix several JRuby build issues (bb770e2e, #669 and #671 by mvz)
- Clean up build (#663 by mvz)
- Handle announcing combined with DebugProcess (#665 by mvz)
- Allow both 'a' and 'the' in step, as documented (#660 by mvz)
- Fix rubocop issues (#654 and #659 by luke-hill)
- Fix up JRuby build (#657 by mvz)
- Improve documentation for the
@debug
annotation (#656 by mvz) - Support windows internal commands (#655 by xtrasimplicity)
- Do not set binmode on output temp files (#652 by mvz)
- Fix JRuby builds (#637 by mvz)
- Restore previously removed behaviors (#644 by mvz)
- Improve cucumber features (#643 by mvz)
- Move development dependency information to gemspec (#631 by luke-hill)
- Fix JRuby before :command helper hook (#635 by mvz)
- Replace problematic AnsiColor module with simple implementation (#636 by mvz)
- Drop Ruby 2.2 support (#616 by mvz and luke-hill)
- Improve documentation: GitHub is not Github (#629 by amatsuda)
- TimeoutError is deprecated in favor of Timeout::Error (#628 by amatsuda)
- Allow use with Cucumber 3.x (#626 by mvz)
- Allow
#expand_path
to be used with absolute paths. This will emit a warning, which can be silenced with a configuration option (#540 by mvz) - Allow decimal seconds in Cucumber steps that set Aruba timeout values (#544 by mvz)
- Make
have_file_content
diffable (#562 by cllns) - Restore
@disable-bundler
hook (#560 by mvz)
- Improve documentation for users and developers (#454, #456, #457, #460, #459, #461, #475, #494 by olleolleolle, maxmeyer, mvz)
- Make forgetting
setup_aruba
a hard failure (#510 by mvz) - Update dependencies (#511, #541, #553 by mvz, #528 by maxmeyer, #615 by luke-hill and mvz)
- Improve output of
#have_output
matcher (#546 by mvz) - Removed
have_same_file_content_like
anda_file_with_same_content_like
matchers, in favour ofhave_same_file_content_as
anda_file_with_same_content_as
(#555 by xtrasimplicity)
- Remove deprecated functionality (#483, #488, #508 by mvz)
- Remove broken RVM-related step definition (#587 by mvz)
- Drop support for Rubies below 2.2 (#613 by luke-hill)
- Fix UTF-8 issues with jRuby (#462 by stamhankar999)
- Allow slashes in file matching regex (#512 by scottj97 with richardxia)
- Avoid duplicate output appearing in certain cases (#517 by maxmeyer and mvz)
- Fix
@no-clobber
breaking process management (#535 by doudou) - Fix command spawning when spaces occur in the path (#520 by mvz)
- Make exit in in-process runner behave like real Kernel#exit (#594 by grosser)
- Improve compatibility with Windows (#618 by mvz)
- Upcase ENV keys on Windows
- Properly escape command and arguments on Windows
- Use correct path separator on Windows
- Fix test suite failures (#452, #497 by maxmeyer and mvz; #487, #509 by mvz)
- Remove development gems for unsupported Rubinius platform (#464 by maxmeyer)
- Update
license_finder
dependency (#466 by maxmeyer) - Restrict branches to run Travis (#471 by junaruga)
- Maintain Travis builds (#476 by maxmeyer; #493, #532, #536 by mvz; #542, #596, #607 by olleolleolle)
- Rename History.md to CHANGELOG.md and fix links and formatting, etc. to bring it in line with cucumber/cucumber#521 (#481, #482 by jaysonesmith)
- Fix YARD documentation issues (#491 by olleolleolle)
- Change maintainership (#495, #523 by maxmeyer)
- Remove commented-out code (#498 by olleolleolle)
- Documentation fixups (#504 by roschaefer; #530 by xtrasimplicity; #606 by olleolleolle)
- Add 'stale' bot (#507 by maxmeyer
- Update RuboCop and fix some offenses (#514, #537 by mvz)
- Mark scenarios requiring external commands (#515 by mvz)
- Remove cucumber features related to Aruba development (#522, #543, #544 by mvz)
- Avoid long waits in feature suite (#544 by mvz)
- Clean up internally used cuke tags and their implementation (#548 by mvz)
- Test with Ruby 2.5 and 2.6 (#554 by nicolasleger, #578 by mvz)
- Fix tests on Debian. (#575 by Heinrich)
- Update development dependencies (#580 by mvz)
- Start work on unifying still and master branches (#583, #584 by mvz)
- Update CONTRIBUTING.md and drop bin/bootstrap (#593 by olleolleolle)
- Point to https version of GitHub repo URL (#623 by amatsuda)
- Update examples for usage in README
- Fix environment manipulation (#442)
- Update supported ruby versions in .travis.yml (#449)
- Use
license_finder
version which is usable for rubies< 2.3
(#451) - Wrap test runners in
bundle exec
(#447) - Fix wording in README (#445)
- Restructure README and upload feature files to cucumber.pro (#444)
Note: These are changes w.r.t. Aruba version 0.14.1.
-
Use new proposed structure for gems by bundler (#439)
-
Rename methods which run commands (#438)
-
Fix dependency error for install (#427)
-
Actually fail the build if rake test fails (#433)
-
Improve frozen-string-literals compatibility. (#436)
-
Fix running commands on Windows (#387)
-
Fix running commands on Windows (#387)
-
Set permissions to values which are supported on Windows (#398, #388)
-
Remove Aruba::Reporting (#389)
-
Rename bin/cli to bin/aruba-test-cli to prevent name conflict (#390)
-
Drop support for
ruby < 1.9.3
and rubinius (#385) -
Fixed wrong number of arguments in
Aruba::Platforms::WindowsEnvironmentVariables#delete
(#349, #358 by e2) -
Added vision and hints to project README (#366)
-
Prefixed exception in
rescue
-call to make it fail with a proper error message (#376) -
Run and build aruba in isolated environment via docker (#353 by e2, #382)
-
Run container with docker-compose without making docker-compose a required dependency. Rake tasks read in the docker-compose.yml instead (#382)
-
Document developer rake tasks via cucumber features (#382)
-
Add more hints to CONTRIBUTING.md (#382)
-
Cleanup rake tasks via separate namespaces (#382)
-
Some more minor fixes (#382)
-
Don't run feature test if executable required for test is not installed (python, bash, zsh, javac, ...) (#382)
-
Support for rubies older than 1.9.3 is discontinued - e.g 1.8.7 and 1.9.2
-
aruba requires "cucumber 2" for the feature steps. The rest of aruba should be usable by whatever testing framework you are using.
-
Overwriting methods for configuration is discontinued. You need to use
aruba.config.<variable>
orAruba.configure { |config| config.<variable>
instead. -
"aruba/reporting" will be removed. Please use
@debug
-tag +byebug
,debugger
,pry
to troubleshoot your feature tests. -
Set environment variables will have only effect on
#run
and the like +#with_environment { }
. -
The process environment will be fully resetted between tests. Sharing state via ENV['VAR'] = 'shared state' between tests will not be possible anymore. Please make that obvious by using explicit steps or use the aruba API for that.
-
There will be a major cleanup for command execution. There will be only
run
andrun_simple
left.run_interactive
is replaced byrun
. -
Setting the root directory of aruba via method overwrite or configuration - this should be your project root directory where the test suite is run.
-
The direct use of "InProcess", "DebugProcess" and "SpawnProcess" is not supported anymore. You need to use "Command" instead. But be careful, it has a different API.
-
HOME can be configured via
Aruba.configure {}
and defaults toFile.join(aruba.config.root_directory, aruba.config.working_directory?)
ifaruba/cucumber
oraruba/rspec
is used. -
Use different working directories based on test suite - RSpec, Cucumber. It's
tmp/rspec
andtmp/cucumber
now to make sure they do not overwrite the test results from each other. -
The use of
@interactive
is discontinued. You need to use#last_command_started
-method to get access to the interactively started command. -
If multiple commands have been started, each output has to be checked separately
Scenario: Detect stdout from all processes When I run `printf "hello world!\n"` And I run `cat` interactively And I type "hola" And I type "�" Then the stdout should contain: """ hello world! """ And the stdout should contain: """ hola """ And the stderr should not contain anything
- Support Ruby 2.7 (#677)
- Loosen dependency on thor (#676)
- Mark setting of
root_directory
as deprecated in documentation (#571)
- Loosen dependency on childprocess (#673)
- Fix Travis build (#668)
- Handle announcing with DebugProcess (#664)
- Loosen childprocess dependency (#658)
- Do not set binmode on output temp files, so automatic line ending conversion works (#650)
- Improve deprecation suggestions (#647)
- Backport fixes to code organization, layout and spelling (#645)
- Backport replacement of problematic AnsiColor module with simple implementation (#642)
- Undo preprecation of
#all_output
,#all_stdout
,#all_stderr
and#in_current_directory
API methods, as well as of checking the combined output from all commands in cucumber steps (#638) - Warn when deprecated files
aruba/in_process
andaruba/spawn_process
are required (#639) - Backport allowing decimal timeout values (#621)
- Move deprecated cucumber steps into a separate file (#622)
- Backport renaming of bin/cli in features (#620)
- Improve build set for CI (#611)
- Make JRuby before :command helper hook work on the environment the command will actually be run in (#610, #612)
- Reorganize spec files to match master branch (#603)
- Reorganize feature files to match master branch (#602)
- Formally deprecate
#use_clean_gemset
(#597) - Improve deprecation messages (#601)
- Do not replace entire environment inside
#cd
block (#604)
- Deprecate
#run
and#run_simple
in favor of#run_command
and#run_command_and_stop
(#585) - Update dependencies, most notably loosening the dependency on
childprocess
(#591) - Properly warn about deprecated use of the run methods with one positional option (#588)
- Fix Cucumber steps to use
have_same_file_content_as
matcher (#572) - Update dependencies, most notably loosening the dependency on
ffi
(#581)
- Document and fix
@disable-bundler
hook (#561) - Deprecate
have_same_file_content_like
anda_file_with_same_content_like
in favor ofhave_same_file_content_as
anda_file_with_same_content_as
(#557)
- Loosen dependency on
child_process
(#551)
- Fix command spawning when run in directories with spaces (#490)
- Ensure setup is still done when using
@no-clobber
(#529) - Make
#expand_path
handle absolute paths correctly (#486)
- Fix path bug (#422)
- Ensure non-deprecated methods do not use deprecated methods (#489)
- Update dependency on childprocess (#516)
- Fix encoding output on JRuby (#516)
- Handle empty
JRUBY_OPTS
on JRuby
- Fixed bug in framework step
- Add
<project_root>/exe
to search path for commands: This is the new default if you setup a project with bundler. - Add some more steps to modify environment
- Add two new hooks for rspec and cucumber to make troubleshooting feature
files easier (#338):
command_content
: Outputs command content - helpful for scriptscommand_filesystem_status
: Outputs information like group, owner, mode, atime, mtime
- Add generator to create ad hoc script file (#323, AdrieanKhisbe)
- Colored announcer output similar to the color of
cucumber
tags: cyan - Fixed bug in announcer. It announces infomation several times due to duplicate announce-calls.
- Refactorings to internal
#simple_table
-method (internal) - Refactored Announcer, now it supports blocks for announce as well (internal)
- Fix circular require warnings (#339)
- Fix use of old instances variable
@io_wait
(#341). Now the default value forio_wait_timeout
can be set correctly. - Make it possible to announce information on command error, using a new option
called
activate_announcer_on_command_failure
(#335, njam) - Re-integrate
event-bus
-library intoaruba
-core (#342)
- Add matcher to check if a command can be found in PATH (#336)
- Fixed issue with environment variables set by external libraries (#321, #320)
- Fixed problem with positional arguments in
#run_simple()
(#322)
- Use fixed version of event-bus
- Refactored and improved documentation (feature tests) in #309
- Accidently pushed to rubygems.org - yanked it afterwards
- Fixed syntax for Hash on ruby 1.8.7
- Reorder rubies in .travis.yml
- Fixed syntax for proc on ruby 1.8.7
- Integrate
EventBus
to decouple announcers from starting, stopping commands etc. This uses nearly the same implementation likecucumber
. (#309) - Starting/Stopping a command directly (
command.start
,command.stop
) is now reported to the command monitor andlast_command_stopped
is updated correctly - Added
#restart
toCommand
to make it possible to restart a command - Added check to prevent a command which has already been started, to be started again. Otherwise you've got hidden commands which are not stopped after a cucumber/rspec/minitest run.
- Adding alot of documentation to
aruba
- Refactored
#run
: Now it wants you to pass aHash
containing the options. The old syntax is still supported, but is deprecated. - Added
#find_command
as experimental feature. It searches the started commands from last to first. - Added
be_an_executable
matcher
- Set stop signal which should be used to stop a process after a timeout or used to terminate a process. This can be used to stop processes running docker + "systemd". If you send a systemd-enable container SIGINT it will be stopped.
- Added a configurable amount of time after a command was started -
startup_wait_time
. Otherwise you get problems when a process takes to long to startup when you run in background and want to sent it a signal. - Replace
<variable>
in commandline, e.g.<pid-last-command-started>
[experimental] - Added announce formatter for time spans, e.g.
startup_wait_time
- All process classes, e.g.
BasicProcess
,SpawnProcess
, etc., are marked as private. Users should use#run('cmd')
and not use the classes directly. rvm
-methods are deprecated. They are too ruby specific.
- Fixed problem in regex after merge of step definitions
- Merged remove steps for file and directory from 4 into 2 step definitions
- Fix
"#exit_timeout" is deprecated
error (#314)
- Take over code from
RSpec::Support::ObjectFormatter
sincerspec-support
is not intended for public use.
- Add some new steps to make writing documentation easier using "cucumber", "rspec", "minitest" together with "aruba" - see Feature for some examples
- Write output of commands directly to disk if SpawnProcess is used (see 85d74fcc)
- Refactored API of cucumber steps to reduce the need for more methods and make it easier for users to write their own steps (#306)
- Added
aruba init
to the cli command to setup environment for aruba (issue #308) - Added new method
delete_environment_variable
to remove environment variable - Added work around because of method name conflict between Capybara and RSpec (1939c404)
- Fix feature test
- Fix ordering in console
- Fix bug in console handling SIGINT
- Deprecated Aruba/Reporting before we remove it
- Redefine
#to_s
and#inspect
for BasicProcess to reduce the sheer amount of information, if a command produces a lot of output - Added new matcher
#all_objects
to check if an object is included + an error message for failures which is similar to the#all
-matcher ofRSpec
- Add
have_output
-,have_output_on_stderr
,have_output_on_stdout
-matchers - Replace all
assert_*
andcheck_*
-methods through expectations - Add hook
@announce-output
to output both, stderr and stdout - Add a lot of documentation (#260)
- Replace
#last_command
through#last_command_started
and#last_command_stopped
to make it more explicit - Improve syntax highlighting in cucumber feature tests by adding programming
language to
"""
-blocks - Rename tags
@ignore-*
to@unsupported-on-*
- Introduce our own
BaseMatcher
-class to remove the dependency toRSpec
's private matcher APIs - Now we make the process started via
SpawnProcess
the leader of the group to kill all sub-processes more reliably
- Improve documentation for filesystem api and move it to feature tests
- Add logger to aruba. Its output can be captured by rspec.
- Fix incorrect deprecation message for
check_file_presence
(#292) - Fix for Gemfile excludes windows for many gems (#282)
- Make feature tests compatible with ruby 1.9.2
- Gather disk usage for file(s) (#294)
- Replace
keep_ansi
config option byremove_ansi_escape_sequences
option - Split up
#unescape
into#extract_text
and#unescape_text
- Use
UnixPlatform
andWindowsPlatform
to make code for different platforms maintainable - Work around
ENV
-bug in JRuby by using#dup
onENV.to_h
(jruby/jruby#316) - Speed up test on JRuby by using
--dev
-flag - Work around problems when copying files with
cp
on MRI-ruby 1.9.2 - Add
cmd.exe /c
for SpawnProcess on Windows (#302) - Split up
#which
for Windows and Unix/Linux (#304) - Add
aruba console
command to play around with aruba (#305)
- Fix problem if working directory of aruba does not exist (#286)
- Re-add removed method
only_processes
- Fixed problem with last exit status
- Added appveyor to run tests of aruba on Windows (#287)
- Make the home directory configurable and use Around/around-hook to apply it
- Add announcer to output the full environment before a command is run
- Use
prepend_environment_variable
to modify PATH for rspec integration - Add
VERSION
constant to aruba and use it for code which should be activated on >= 1.0.0
- Build with cucumber 1.3.x on ruby 1.8.7, with cucumber 2.x on all other platforms
- Fixed bugs in aruba's cucumber steps
- Disable use of
win32/file
- Fixed bug in
in_current_dir*
not returning the result of the block - Fixed checks for file content
- Fixed selectors for DebugProcess and InProcess to support sub-classes as well
- Depend on cucumber 1.3.x for compatibility on ruby 1.8.7
- Change PWD and OLDPW when
cd('path') {}
is used within that block - Make nesting of
cd
possible - Make
run
insidecd
possible - Fixed some bugs
- Move
Aruba.proces = InProcess|SpawnProcess|DebugProcess
toaruba.config
- Deprecate direct use of
InProcess|SpawnProcess|DebugProcess
. NowCommand
needs to be used - Add new configuration options
command_launcher
andmain_klass
for deprecation of old-styleAruba.process = <class>
,:spawn
is the default value for thecommand_launcher
-option - Added checks for version of
rspec-expectations
to support olderrspec
versions like2.11
- Now each
path/to/dir
pushed toaruba.current_directory
ispop
ed as whole - Make testing of
aruba.current_directory
easier by supportingend_with?
andstart_with?
- Relax requirement on rspec-expectations (3.3 -> 2.11)
- Make aruba compatible with "ruby 1.8.7" and "ruby 1.9.3" again (#279)
- Move more and more documentation to cucumber steps (#268)
- Refactoring of test suits, now rspec tests run randomly
- Move Aruba constants to configuration class (#271)
- Added runtime configuration via
aruba.config
which is reset for each test run - Refactored hooks: now there are
after()
andbefore()
-hooks, oldbefore_cmd
-hook is still working, but is deprecated, added newafter(:command)
-hook. - Refactored jruby-startup helper
- Cleanup API by moving deprecated methods to separate class
- Cleanup Core API - reduced to
cd
,expand_path
,setup_aruba
and useexpand_path
wherever possible (#253) - Better isolation for environment variable manipulation - really helpful from 1.0.0 on
- Move configuration files like
jruby.rb
toaruba/config/
-directory - Change default exit timeout to 15 seconds to work around long running processes on travis
- Use of instance variables like
@aruba_timeout_seconds
or@aruba_io_wait_seconds
are deprecated. UseAruba.configure do |config| config.exit_timeout = 10
etc. for this.
- Really Fixed post install message
- Fixed post install message
- Do not trigger Announcer API deprecation warning (#277)
- Do not break if
@interactive
is used
- Introducing
root_directory
(#232) - Introducing fixtures directory (#224)
- Make sure a file/directory does not exist + Cleanup named file/directory steps (#234)
- Make matcher
have_permisions
public and add documentation (#239) - Added matcher for file content (#238)
- Add rspec integrator (#244)
- Deprecate
_file
and_directory
in method names (#243) - Improve development environment (#240)
- Cleanup process management (#257)
- Make path content available through matchers and api metchods (#250)
- Refactor announcer to support user defined announce channels (fixes #267)
InProcess
requires that the working directory is determined on runtime not no loadtime
- Fixed minor #223)
- Added support for ruby 2.1.3 -- 2.1.5
- Added support for comparison to a fixture file
- Added support for ruby 2.1.2
- Added support for
~
expansion - Added support for
with_env
- Dropped support for ruby 1.8
- Added support for ruby 2.1.0 and 2.1.1
- Added rspec 3.0.0 support
- Added support for piping in files (#154, maxmeyer, dg-vrnetze)
- Added cucumber steps for environment variables (#156, dg-vrnetze)
- Added support for file mode (#157, maxmeyer, dg-vrnetze)
- Plugin API for greater speed. Test Ruby CLI programs in a single Ruby process (#148, aslakhellesoy)
- Fix memory leak when several commands are executed in a single run (#144, y-higuchi)
- Individual timeout settings when running commands (#124, jarl-dk)
- Varous fixes for JRuby tests, should now work on more versions of JRuby
- Add
#with_file_content
to the DSL (#110, argent-smith) - Make JRuby performance tweaks optional (#102, taylor, #125, alindeman)
- Add
assert_partial_output_interactive
so you can peek at the output from a running process (#104, taylor) - Add
assert_not_matching_output
(#111, argent-smith) - Add
remove_dir
(#121, LTe)
- Fix duplicated output (#91, robertwahler, mattwynne)
- Fix Gemspec format (#101, mattwynne)
- Rename
before_run
hook tobefore_cmd
(mattwynne) - Fix 1.8.7 compatibility (#95, davetron5000)
- Add
before_run
hook (mattwynne) - Add JRuby performance tweaks (#93, myronmarston, mattwynne)
- Invalid/Corrupt spec file for 0.4.7 - undefined method call for nil:Nilclass (#47, aslakhellesoy)
- Remove rdiscount dependency. (#85, aslakhellesoy)
- Pin to ffi 1.0.9 since 1.0.10 is broken. (aslakhellesoy)
- Added file size specific steps to the Aruba API. (#89, hectcastro)
- Upgraded deps to latest gems. (aslakhellesoy)
- Added Regexp support to
Aruba::Api#assert_no_partial_output
. (aslakhellesoy)
- Better assertion failure message when an exit code is not as expected. (mattwynne)
- Fix various bugs with interative processes. (mattwynne)
- Aruba reporting now creates an index file for reports, linking them all together. (aslakhellesoy)
- Appending to a file creates the parent directory if it doesn't exist. (aslakhellesoy)
- Move more logic into Aruba::Api (aslakhellesoy)
- New, awesome HTML reporting feature that captures everything that happens during a scenario. (aslakhellesoy)
- ANSI escapes from output are stripped by default. Override this with the @ansi tag. (aslakhellesoy)
- Make
Aruba::Api#get_process
return the last executed process with passed cmd (greyblake) - Replace announce with puts to comply with cucumber 0.10.6 (aslakhellesoy)
- Fix childprocess STDIN to be synchronous (#40, #71, lithium3141)
- Changed default value of
@aruba_timeout_seconds
from 1 to 3. (aslakhellesoy) - Separate hooks and steps to make it easier to build your own steps on top of Aruba's API (msassak)
@no-clobber
to prevent cleanup before each scenario (msassak)
- Use backticks (`) instead of quotes (") to specify command line. Quote still works, but is deprecated. (aeden, aslakhellesoy)
- Updated RSpec development requirement to 2.5 (rspeicher, msassak, aslakhellesoy)
- Updated RubyGems dependency to 1.6.1 (rspeicher)
- Wrong number of args in the When I overwrite step (aslakhellesoy)
- Broken 0.3.0 release (#43, #44, msassak)
- Quotes (") and newline (\n) in step arguments are no longer unescaped. (aslakhellesoy)
- Remove latency introduced in the 0.2.8 release (#42, msassak)
- New stepdef
Then /^the stdout should contain:$/ do |partial_output|
(aslakhellesoy) - Quotes (") and newline (\n) in step arguments no longer need to be backslash-escaped. (aslakhellesoy)
- Replaced
background_process
withchildprocess
, a cross-platform process control library. This will allow Aruba to run on Windows and JRuby in addition to *nix MRI. (#16, #27, #31, msassak, jarib, mattwynne, aknuds1)
- Upgrade to Cucumber 0.10.0. (aslakhellesoy)
require 'aruba'
does nothing - you have torequire 'aruba/cucumber'
now. This is to prevent bundler from loading it when we don't want to. (aslakhellesoy)- Outputting a lot of data causes process to time out (#30, msassak)
- You can set
@aruba_timeout_seconds
in a Before hook to tell Aruba to wait for a process to complete. Default: 1 second. (aslakhellesoy) - Fixed small bug in
/^the stdout should contain exactly:$/
(aslakhellesoy)
- Added 'a file named "whatever" should (not) exist' (rspeicher)
- Added 'a directory named "whatever" should (not) exist' (rspeicher)
- Added /^the stderr should contain exactly:"$/ (aslakhellesoy)
- Added /^the stdout should contain exactly:"$/ (aslakhellesoy)
- Added /it should pass with exactly:/ (aslakhellesoy)
- @announce, @announce-dir and @announce-cmd for interactive processes (msassak)
- Add step defs for detecting output, stdout and stderr by process name (msassak)
- Stop all processes before verifying filesystem changes to ensure async operations are complete (#17, msassak)
- Outputting large amounts of data causes run steps to hang (#18, msassak)
- Added step definitions for removing files and checking presence of a single file. (aslakhellesoy)
- Directory should not exist gives false-positive (#13, #15, nruth)
- Added step definitions for comparing file contents with regexps (#9, aslakhellesoy)
- Always put ./bin at the beginning of $PATH to make it easier to run own executables (#7, aslakhellesoy)
- Communication with interactive processes (#4, msassak)
- Remove hyphens separating stdout and stderr (aknuds1)
- Added a @bin tag that sets up './bin' first on the path (aslakhellesoy)
- Richer API making aruba easier to use from Ruby code. (Mark Nijhof, aslakhellesoy)
- No more support for RVM. Use rvm 1.9.2,1.8.7 exec cucumber .... instead. (Mark Nijhof, aslakhellesoy)
- Always compare with RSpec should =~ instead of should match. This gives a diff when there is no match. (aslakhellesoy)
-
Added aruba.gemspec. (dchelimsky)
-
Several step definitions regarding output have changed. (#1, aslakhellesoy)
- /^I should see "([^\"]*)"$/ + /^the output should contain "([^"]*)"$/ - /^I should not see "([^\"]*)"$/ + /^the output should not contain "([^"]*)"$/ - /^I should see:$/ + /^the output should contain:$/ - /^I should not see:$/ + /^the output should not contain:$/ - /^I should see exactly "([^\"]*)"$/ + /^the output should contain exactly "([^"]*)"$/ - /^I should see exactly:$/ + /^the output should contain exactly:$/ - /^I should see matching \/([^\/]*)\/$/ + /^the output should match \/([^\/]*)\/$/ - /^I should see matching:$/ + /^the output should match:$/
- If the GOTGEMS environment variable is set, bundler won't run (faster). (aslakhellesoy)
- Use // instead of "" for "I should see matching" step. (aslakhellesoy)
- Replace rvm gemset character '%' with '@' for rvm 0.1.24 (#5, Ashley Moran)
- Support gem bundler, making it easier to specify gems. (aslakhellesoy)
- New
@announce-stderr
tag (robertwahler) - New "I should see matching" steps using Regexp (robertwahler)
When /^I successfully run "(.*)"$/
now prints the combined output if exit status is not 0. (aslakhellesoy)- Add bundle to list of common ruby scripts. (aslakhellesoy)
- Added ability to map rvm versions to a specific version with config/aruba-rvm.yml. (aslakhellesoy)
- Check for presence of files. (aslakhellesoy)
- Allow specification of rvm gemsets. (aslakhellesoy)
- Detect ruby commands and use current ruby when rvm is not explicitly used. (aslakhellesoy)
- Added support for rvm, making it possible to choose Ruby interpreter. (aslakhellesoy)
- Added
@announce-cmd
,@announce-stdout
and@announce
tags, useful for seeing what's executed and outputted. (aslakhellesoy)
- New step definition for appending to a file (aslakhellesoy)
- New step definition for cd (change directory) (aslakhellesoy)
- Separated API from Cucumber step definitions, makes this usable without Cucumber. (aslakhellesoy)
- Better Regexp escaping (dchelimsky)
- First release (dchelimsky and aslakhellesoy)