Skip to content

Latest commit

 

History

History
1502 lines (1244 loc) · 64.3 KB

CHANGELOG.md

File metadata and controls

1502 lines (1244 loc) · 64.3 KB

CHANGELOG

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

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

  • Add Bundler as an explicit runtime dependency (#810 by luke-hill)

1.1.1 / 2021-05-14

  • Loosen dependency on the contracts gem (#804 by mvz)

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)
  • Loosen childprocess dependency (00cb0789 by mvz).
  • Various small code cleanups (#717 by mvz)

Bug fixes

  • Allow use of Aruba with Cucumber 4 (#715 by mvz)

Code quality and documentation improvements

Breaking changes compared to Aruba 0.14.x

  • 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

Detailed changes compared to 1.0.0.pre.alpha.5

  • 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)

Added

  • 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)

Changed

Removed

Bug fixes

  • 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

Developer experience and internal changes

  • 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)

  • Fixed colors in script/bootstrap ( #352, e2)

  • Fixed use of removed Utils-module (#347, e2)

  • Fixed exception handler in BasicProcess (#357, e2)

  • Fixed step to check for existing of files (#375, rubbish)

  • Fixed unset instance variable (#372, e2)

  • Added vision and hints to project README (#366)

  • Fixed setting environment variables on Windows (#358, e2)

  • Fixed the logic to determine disk usage (#359, e2)

  • 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)

  • Add TESTING.md (WIP) (#382, e2)

  • 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> or Aruba.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 and run_simple left. run_interactive is replaced by run.

  • 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 to File.join(aruba.config.root_directory, aruba.config.working_directory?) if aruba/cucumber or aruba/rspec is used.

  • Use different working directories based on test suite - RSpec, Cucumber. It's tmp/rspec and tmp/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 and aruba/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 and a_file_with_same_content_like in favor of have_same_file_content_as and a_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 scripts
    • command_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 for io_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 into aruba-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 like cucumber. (#309)
  • Starting/Stopping a command directly (command.start, command.stop) is now reported to the command monitor and last_command_stopped is updated correctly
  • Added #restart to Command 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 a Hash 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 since rspec-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 of RSpec
  • Add have_output-, have_output_on_stderr, have_output_on_stdout-matchers
  • Replace all assert_* and check_*-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 to RSpec'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 by remove_ansi_escape_sequences option
  • Split up #unescape into #extract_text and #unescape_text
  • Use UnixPlatform and WindowsPlatform to make code for different platforms maintainable
  • Work around ENV-bug in JRuby by using #dup on ENV.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 inside cd possible
  • Fixed some bugs
  • Move Aruba.proces = InProcess|SpawnProcess|DebugProcess to aruba.config
  • Deprecate direct use of InProcess|SpawnProcess|DebugProcess. Now Command needs to be used
  • Add new configuration options command_launcher and main_klass for deprecation of old-style Aruba.process = <class>, :spawn is the default value for the command_launcher-option
  • Added checks for version of rspec-expectations to support older rspec versions like 2.11
  • Now each path/to/dir pushed to aruba.current_directory is poped as whole
  • Make testing of aruba.current_directory easier by supporting end_with? and start_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() and before()-hooks, old before_cmd-hook is still working, but is deprecated, added new after(: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 use expand_path wherever possible (#253)
  • Better isolation for environment variable manipulation - really helpful from 1.0.0 on
  • Move configuration files like jruby.rb to aruba/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. Use Aruba.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
  • Fix broken JRuby file following rename of hook (tdreyno)
  • Add terminate method to API (taylor)
  • 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)
  • 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)
  • Store processes in an array to ensure order of operations on Ruby 1.8.x (#48 msassak)
  • Use backticks (`) instead of quotes (") to specify command line. Quote still works, but is deprecated. (aeden, aslakhellesoy)
  • Wrong number of args in the When I overwrite step (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 with childprocess, 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 to require '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)
  • 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)
  • Separated API from Cucumber step definitions, makes this usable without Cucumber. (aslakhellesoy)