aruba 0.13.0 → 0.14.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (48) hide show
  1. checksums.yaml +4 -4
  2. data/.rubocop.yml +8 -2
  3. data/Gemfile +1 -1
  4. data/History.md +6 -0
  5. data/README.md +1 -1
  6. data/Rakefile +3 -9
  7. data/TODO.md +5 -0
  8. data/features/steps/command/run.feature +16 -0
  9. data/features/steps/environment/append_environment_variable.feature +52 -0
  10. data/features/steps/environment/prepend_environment_variable.feature +52 -0
  11. data/features/steps/environment/set_environment_variable.feature +19 -4
  12. data/features/support/env.rb +5 -5
  13. data/fixtures/cli-app/lib/cli/app/version.rb +1 -1
  14. data/fixtures/empty-app/lib/cli/app/version.rb +1 -1
  15. data/lib/aruba/api/core.rb +1 -1
  16. data/lib/aruba/api/deprecated.rb +2 -24
  17. data/lib/aruba/api/filesystem.rb +1 -1
  18. data/lib/aruba/aruba_path.rb +1 -1
  19. data/lib/aruba/colorizer.rb +1 -1
  20. data/lib/aruba/command.rb +1 -3
  21. data/lib/aruba/config.rb +1 -1
  22. data/lib/aruba/config/jruby.rb +1 -1
  23. data/lib/aruba/config_wrapper.rb +1 -1
  24. data/lib/aruba/cucumber/command.rb +4 -0
  25. data/lib/aruba/cucumber/environment.rb +8 -0
  26. data/lib/aruba/file_size.rb +2 -2
  27. data/lib/aruba/matchers/base/object_formatter.rb +2 -2
  28. data/lib/aruba/matchers/path/match_path_pattern.rb +1 -1
  29. data/lib/aruba/platforms/announcer.rb +9 -9
  30. data/lib/aruba/platforms/filesystem_status.rb +1 -1
  31. data/lib/aruba/platforms/local_environment.rb +1 -1
  32. data/lib/aruba/platforms/simple_table.rb +1 -1
  33. data/lib/aruba/platforms/unix_command_string.rb +1 -1
  34. data/lib/aruba/platforms/unix_environment_variables.rb +16 -18
  35. data/lib/aruba/platforms/windows_command_string.rb +1 -1
  36. data/lib/aruba/platforms/windows_environment_variables.rb +14 -14
  37. data/lib/aruba/processes/basic_process.rb +1 -1
  38. data/lib/aruba/processes/debug_process.rb +0 -4
  39. data/lib/aruba/processes/spawn_process.rb +3 -5
  40. data/lib/aruba/runtime.rb +5 -5
  41. data/lib/aruba/setup.rb +1 -1
  42. data/lib/aruba/version.rb +1 -1
  43. data/spec/aruba/api_spec.rb +12 -12
  44. data/spec/aruba/jruby_spec.rb +1 -1
  45. data/spec/aruba/matchers/file_spec.rb +2 -2
  46. data/spec/support/helpers/reporting.rb +1 -1
  47. data/spec/support/shared_examples/configuration.rb +1 -1
  48. metadata +7 -3
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: c728c7b302f5e46b803fabe9a95ab2769c768b65
4
- data.tar.gz: 2a613d641ff60f99b06774b89bd23513a6aa01e1
3
+ metadata.gz: e5ec77c0f2b08ab348a156340b1ef9c8f663b4ee
4
+ data.tar.gz: 5675b79f8e3cf85ba2a27ea371088dba3e781802
5
5
  SHA512:
6
- metadata.gz: 8ed3b4ac93ed91676ec48e17eb70fae1ab9d456213810880e2cf50c1f84e3df75e5585c708647c6d6da00604c424e54ea907c2cd225779cac6a67cb766d21108
7
- data.tar.gz: c3e739cc6c22e3b42bbd19d04b86b40c4c4f7c370b0bfd6fcaf0fae267654dd73b8f5c7e6f244d1ef2e59e16121fd3bcb31a799d47b0a2b9d50b010fb224109e
6
+ metadata.gz: 4bff6ec753cafe72067bc25c1f00680825e17c830905ff6c3783f4bb927f44ab20f34d7d8be73601329cc6ea019bd82c215f648307a755582bc635830abbe46e
7
+ data.tar.gz: 4021df9a869200d6d123ee2249706a42fe2459f516f69695502b49630ec7bb79dae9991a92b315a179b1cfaf9cb74b07a4b54d597f25c537b13855f2b66842f0
@@ -128,7 +128,7 @@ Style/SingleLineBlockParams:
128
128
  Enabled: false
129
129
 
130
130
  # Cop supports --auto-correct.
131
- Style/SingleSpaceBeforeFirstArg:
131
+ Style/SpaceBeforeFirstArg:
132
132
  Enabled: false
133
133
 
134
134
  # Cop supports --auto-correct.
@@ -136,7 +136,7 @@ Style/SpaceAfterComma:
136
136
  Enabled: false
137
137
 
138
138
  # Cop supports --auto-correct.
139
- Style/SpaceAfterControlKeyword:
139
+ Style/SpaceAroundKeyword:
140
140
  Enabled: false
141
141
 
142
142
  # Cop supports --auto-correct.
@@ -180,3 +180,9 @@ Style/RaiseArgs:
180
180
 
181
181
  Metrics/ParameterLists:
182
182
  Enabled: false
183
+
184
+ Style/IfInsideElse:
185
+ Enabled: false
186
+
187
+ Style/IdenticalConditionalBranches:
188
+ Enabled: false
data/Gemfile CHANGED
@@ -55,7 +55,7 @@ group :development, :test do
55
55
 
56
56
  if RUBY_VERSION >= '1.9.3'
57
57
  # Make aruba compliant to ruby community guide
58
- gem 'rubocop', '~> 0.32.0'
58
+ gem 'rubocop', '~> 0.32'
59
59
  end
60
60
 
61
61
  if RUBY_VERSION >= '1.9.3'
data/History.md CHANGED
@@ -54,6 +54,12 @@
54
54
 
55
55
  # RELEASED
56
56
 
57
+ ## [v0.14.0](https://github.com/cucumber/aruba/compare/v0.13.0...v0.14.0)
58
+
59
+ * Add `<project_root>/exe` to search path for commands: This is the new default if you setup a
60
+ project with bundler.
61
+ * Add some more steps to modify environment
62
+
57
63
  ## [v0.13.0](https://github.com/cucumber/aruba/compare/v0.12.0...v0.13.0)
58
64
 
59
65
  * Add two new hooks for rspec and cucumber to make troubleshooting feature
data/README.md CHANGED
@@ -184,7 +184,7 @@ prefer to setup `aruba` yourself, please move on to the next section.
184
184
 
185
185
  ### User Documentation
186
186
 
187
- If you're interested in our steps and API, please browser our [feature
187
+ If you're interested in our steps and API, please browse our [feature
188
188
  files](https://github.com/cucumber/aruba/tree/master/features). You can find a
189
189
  lot of examples there. A good starting point are [Getting
190
190
  Started](https://github.com/cucumber/aruba/tree/master/features/getting_started)
data/Rakefile CHANGED
@@ -36,17 +36,11 @@ namespace :travis do
36
36
  end
37
37
  end
38
38
 
39
- if RUBY_VERSION < '1.9.3'
39
+ task :rubocop do
40
40
  begin
41
- require 'rubocop/rake_task'
42
- RuboCop::RakeTask.new
43
- rescue LoadError
44
- desc 'Stub task to make rake happy'
45
- task(:rubocop) {}
41
+ sh 'rubocop --fail-level E'
42
+ rescue
46
43
  end
47
- else
48
- require 'rubocop/rake_task'
49
- RuboCop::RakeTask.new
50
44
  end
51
45
 
52
46
  desc "Run tests, both RSpec and Cucumber"
data/TODO.md CHANGED
@@ -6,3 +6,8 @@
6
6
  * Add variation of check and stop of command if output contains
7
7
  Add something like `(?: of last command)?`. If this is true, just check the last command.
8
8
  * Use aruba.config.exit_timeout everywhere
9
+ * Fix problem with long running commands in background:
10
+
11
+ Since we need to stop all commands to access the status of the last command
12
+ stopped, we have problems with long running commands
13
+
@@ -48,3 +48,19 @@ Feature: Run commands
48
48
 
49
49
  STDOUT
50
50
  """
51
+
52
+ Scenario: Run command found in "bin"-directory which is found in the current directory
53
+ Given a file named "features/run.feature" with:
54
+ """
55
+ Feature: Run it
56
+ Scenario: Run command
57
+ Given an executable named "bin/local_cli" with:
58
+ \"\"\"
59
+ #!/bin/bash
60
+ exit 0
61
+ \"\"\"
62
+ And I look for executables in "bin" within the current directory
63
+ When I successfully run `local_cli`
64
+ """
65
+ When I run `cucumber`
66
+ Then the features should all pass
@@ -0,0 +1,52 @@
1
+ Feature: Append environment variable via "cucumber"-step
2
+
3
+ It is quite handy to modify the environment of a process. To make this
4
+ possible, `aruba` provides several steps. One of these is
5
+ `I append the values to environment variables:`-step. Using this step appends
6
+ the values. Each variable name and each value is converted to a string.
7
+ Otherwise `ruby` would complain about an invalid argument.
8
+
9
+ Background:
10
+ Given I use the fixture "cli-app"
11
+ And an executable named "bin/cli" with:
12
+ """
13
+ #!/bin/bash
14
+
15
+ echo $LONG_LONG_VARIABLE
16
+ """
17
+ And a file named "features/support/variables.rb" with:
18
+ """
19
+ ENV['LONG_LONG_VARIABLE'] = '1'
20
+ """
21
+
22
+ Scenario: Append environment variable by using a step given in table
23
+ Given a file named "features/home_variable.feature" with:
24
+ """
25
+ Feature: Environment Variable
26
+ Scenario: Run command
27
+ Given I append the values to the environment variables:
28
+ | variable | value |
29
+ | LONG_LONG_VARIABLE | long_value |
30
+ When I run `cli`
31
+ Then the output should contain:
32
+ \"\"\"
33
+ 1long_value
34
+ \"\"\"
35
+ """
36
+ When I run `cucumber`
37
+ Then the features should all pass
38
+
39
+ Scenario: Append single environment variable by using a step
40
+ Given a file named "features/home_variable.feature" with:
41
+ """
42
+ Feature: Environment Variable
43
+ Scenario: Run command
44
+ Given I append "long_value" to the environment variable "LONG_LONG_VARIABLE"
45
+ When I run `cli`
46
+ Then the output should contain:
47
+ \"\"\"
48
+ 1long_value
49
+ \"\"\"
50
+ """
51
+ When I run `cucumber`
52
+ Then the features should all pass
@@ -0,0 +1,52 @@
1
+ Feature: Prepend environment variable via "cucumber"-step
2
+
3
+ It is quite handy to modify the environment of a process. To make this
4
+ possible, `aruba` provides several steps. One of these is
5
+ `I prepend the values to environment variables:`-step. Using this step prepends
6
+ the values. Each variable name and each value is converted to a string.
7
+ Otherwise `ruby` would complain about an invalid argument.
8
+
9
+ Background:
10
+ Given I use the fixture "cli-app"
11
+ And an executable named "bin/cli" with:
12
+ """
13
+ #!/bin/bash
14
+
15
+ echo $LONG_LONG_VARIABLE
16
+ """
17
+ And a file named "features/support/variables.rb" with:
18
+ """
19
+ ENV['LONG_LONG_VARIABLE'] = '1'
20
+ """
21
+
22
+ Scenario: Prepend environment variable by using a step given in table
23
+ Given a file named "features/home_variable.feature" with:
24
+ """
25
+ Feature: Environment Variable
26
+ Scenario: Run command
27
+ Given I prepend the values to the environment variables:
28
+ | variable | value |
29
+ | LONG_LONG_VARIABLE | long_value |
30
+ When I run `cli`
31
+ Then the output should contain:
32
+ \"\"\"
33
+ long_value1
34
+ \"\"\"
35
+ """
36
+ When I run `cucumber`
37
+ Then the features should all pass
38
+
39
+ Scenario: Prepend single environment variable by using a step
40
+ Given a file named "features/home_variable.feature" with:
41
+ """
42
+ Feature: Environment Variable
43
+ Scenario: Run command
44
+ Given I prepend "long_value" to the environment variable "LONG_LONG_VARIABLE"
45
+ When I run `cli`
46
+ Then the output should contain:
47
+ \"\"\"
48
+ long_value1
49
+ \"\"\"
50
+ """
51
+ When I run `cucumber`
52
+ Then the features should all pass
@@ -9,15 +9,15 @@ Feature: Set environment variable via "cucumber"-step
9
9
 
10
10
  Background:
11
11
  Given I use the fixture "cli-app"
12
-
13
- Scenario: Set environment variable by using a step
14
- Given an executable named "bin/cli" with:
12
+ And an executable named "bin/cli" with:
15
13
  """
16
14
  #!/bin/bash
17
15
 
18
16
  echo $LONG_LONG_VARIABLE
19
17
  """
20
- And a file named "features/home_variable.feature" with:
18
+
19
+ Scenario: Set environment variable by using a step given in table
20
+ Given a file named "features/home_variable.feature" with:
21
21
  """
22
22
  Feature: Environment Variable
23
23
  Scenario: Run command
@@ -32,3 +32,18 @@ Feature: Set environment variable via "cucumber"-step
32
32
  """
33
33
  When I run `cucumber`
34
34
  Then the features should all pass
35
+
36
+ Scenario: Set single environment variable by using a step
37
+ Given a file named "features/home_variable.feature" with:
38
+ """
39
+ Feature: Environment Variable
40
+ Scenario: Run command
41
+ Given I set the environment variable "LONG_LONG_VARIABLE" to "long_value"
42
+ When I run `cli`
43
+ Then the output should contain:
44
+ \"\"\"
45
+ long_value
46
+ \"\"\"
47
+ """
48
+ When I run `cucumber`
49
+ Then the features should all pass
@@ -25,9 +25,9 @@ Before do |scenario|
25
25
  simplecov_setup_pathname = Pathname.new(__FILE__).expand_path.parent.join('simplecov_setup')
26
26
 
27
27
  # set environment variable so child processes will merge their coverage data with parent process's coverage data.
28
- if RUBY_VERSION < '1.9'
29
- ENV['RUBYOPT'] = "-r rubygems -r#{simplecov_setup_pathname} #{ENV['RUBYOPT']}"
30
- else
31
- ENV['RUBYOPT'] = "-r#{simplecov_setup_pathname} #{ENV['RUBYOPT']}"
32
- end
28
+ ENV['RUBYOPT'] = if RUBY_VERSION < '1.9'
29
+ "-r rubygems -r#{simplecov_setup_pathname} #{ENV['RUBYOPT']}"
30
+ else
31
+ "-r#{simplecov_setup_pathname} #{ENV['RUBYOPT']}"
32
+ end
33
33
  end
@@ -1,5 +1,5 @@
1
1
  module Cli
2
2
  module App
3
- VERSION = "0.1.0"
3
+ VERSION = "0.1.0".freeze
4
4
  end
5
5
  end
@@ -1,5 +1,5 @@
1
1
  module Cli
2
2
  module App
3
- VERSION = "0.1.0"
3
+ VERSION = "0.1.0".freeze
4
4
  end
5
5
  end
@@ -57,7 +57,7 @@ module Aruba
57
57
 
58
58
  aruba.event_bus.notify Events::ChangedWorkingDirectory.new(:old => old_directory, :new => new_directory)
59
59
 
60
- old_dir = Aruba.platform.getwd
60
+ old_dir = Aruba.platform.getwd
61
61
 
62
62
  Aruba.platform.chdir File.join(aruba.root_directory, aruba.current_directory)
63
63
 
@@ -289,7 +289,7 @@ module Aruba
289
289
 
290
290
  stop_all_commands
291
291
 
292
- cd('') { block.call }
292
+ cd('') { yield }
293
293
  end
294
294
 
295
295
  # @deprecated
@@ -388,7 +388,7 @@ module Aruba
388
388
  env.each do |k,v|
389
389
  set_env k, v
390
390
  end
391
- block.call
391
+ yield
392
392
  restore_env
393
393
  end
394
394
 
@@ -565,9 +565,7 @@ module Aruba
565
565
  # @return [TrueClass, FalseClass]
566
566
  # If arg1 is exactly the same as arg2 return true, otherwise false
567
567
  def assert_exact_output(expected, actual)
568
- # rubocop:disable Metrics/LineLength
569
568
  Aruba.platform.deprecated('The use of "#assert_exact_output" is deprecated. Use "expect(command).to have_output \'exact\'" instead. There are also special matchers for "stdout" and "stderr"')
570
- # rubocop:enable Metrics/LineLength
571
569
 
572
570
  actual.force_encoding(expected.encoding) if RUBY_VERSION >= "1.9"
573
571
  expect(Aruba.platform.unescape(actual, aruba.config.keep_ansi)).to eq Aruba.platform.unescape(expected, aruba.config.keep_ansi)
@@ -580,9 +578,7 @@ module Aruba
580
578
  # @return [TrueClass, FalseClass]
581
579
  # If arg2 contains arg1 return true, otherwise false
582
580
  def assert_partial_output(expected, actual)
583
- # rubocop:disable Metrics/LineLength
584
581
  Aruba.platform.deprecated('The use of "#assert_partial_output" is deprecated. Use "expect(command).to have_output /partial/" instead. There are also special matchers for "stdout" and "stderr"')
585
- # rubocop:enable Metrics/LineLength
586
582
 
587
583
  actual.force_encoding(expected.encoding) if RUBY_VERSION >= "1.9"
588
584
  expect(Aruba.platform.unescape(actual, aruba.config.keep_ansi)).to include(Aruba.platform.unescape(expected, aruba.config.keep_ansi))
@@ -595,9 +591,7 @@ module Aruba
595
591
  # @return [TrueClass, FalseClass]
596
592
  # If arg2 matches arg1 return true, otherwise false
597
593
  def assert_matching_output(expected, actual)
598
- # rubocop:disable Metrics/LineLength
599
594
  Aruba.platform.deprecated('The use of "#assert_matching_output" is deprecated. Use "expect(command).to have_output /partial/" instead. There are also special matchers for "stdout" and "stderr"')
600
- # rubocop:enable Metrics/LineLength
601
595
 
602
596
  actual.force_encoding(expected.encoding) if RUBY_VERSION >= "1.9"
603
597
  expect(Aruba.platform.unescape(actual, aruba.config.keep_ansi)).to match(/#{Aruba.platform.unescape(expected, aruba.config.keep_ansi)}/m)
@@ -610,9 +604,7 @@ module Aruba
610
604
  # @return [TrueClass, FalseClass]
611
605
  # If arg2 does not match arg1 return true, otherwise false
612
606
  def assert_not_matching_output(expected, actual)
613
- # rubocop:disable Metrics/LineLength
614
607
  Aruba.platform.deprecated('The use of "#assert_not_matching_output" is deprecated. Use "expect(command).not_to have_output /partial/" instead. There are also special matchers for "stdout" and "stderr"')
615
- # rubocop:enable Metrics/LineLength
616
608
 
617
609
  actual.force_encoding(expected.encoding) if RUBY_VERSION >= "1.9"
618
610
  expect(Aruba.platform.unescape(actual, aruba.config.keep_ansi)).not_to match(/#{Aruba.platform.unescape(expected, aruba.config.keep_ansi)}/m)
@@ -625,9 +617,7 @@ module Aruba
625
617
  # @return [TrueClass, FalseClass]
626
618
  # If arg2 does not match/include arg1 return true, otherwise false
627
619
  def assert_no_partial_output(unexpected, actual)
628
- # rubocop:disable Metrics/LineLength
629
620
  Aruba.platform.deprecated('The use of "#assert_no_partial_output" is deprecated. Use "expect(command).not_to have_output /partial/" instead. There are also special matchers for "stdout" and "stderr"')
630
- # rubocop:enable Metrics/LineLength
631
621
 
632
622
  actual.force_encoding(unexpected.encoding) if RUBY_VERSION >= "1.9"
633
623
  if Regexp === unexpected
@@ -644,9 +634,7 @@ module Aruba
644
634
  # @return [TrueClass, FalseClass]
645
635
  # If output of interactive command includes arg1 return true, otherwise false
646
636
  def assert_partial_output_interactive(expected)
647
- # rubocop:disable Metrics/LineLength
648
637
  Aruba.platform.deprecated('The use of "#assert_partial_output_interactive" is deprecated. Use "expect(last_command_started).to have_output /partial/" instead. There are also special matchers for "stdout" and "stderr"')
649
- # rubocop:enable Metrics/LineLength
650
638
 
651
639
  Aruba.platform.unescape(last_command_started.stdout, aruba.config.keep_ansi).include?(Aruba.platform.unescape(expected, aruba.config.keep_ansi)) ? true : false
652
640
  end
@@ -658,9 +646,7 @@ module Aruba
658
646
  # @return [TrueClass, FalseClass]
659
647
  # If exit status is 0 and arg1 is included in output return true, otherwise false
660
648
  def assert_passing_with(expected)
661
- # rubocop:disable Metrics/LineLength
662
649
  Aruba.platform.deprecated('The use of "#assert_passing_with" is deprecated. Use "expect(all_commands).to all(be_successfully_executed).and include_an_object(have_output(/partial/))" or something similar instead. There are also special matchers for "stdout" and "stderr"')
663
- # rubocop:enable Metrics/LineLength
664
650
 
665
651
  assert_success(true)
666
652
  assert_partial_output(expected, all_output)
@@ -673,9 +659,7 @@ module Aruba
673
659
  # @return [TrueClass, FalseClass]
674
660
  # If exit status is not equal 0 and arg1 is included in output return true, otherwise false
675
661
  def assert_failing_with(expected)
676
- # rubocop:disable Metrics/LineLength
677
662
  Aruba.platform.deprecated('The use of "#assert_passing_with" is deprecated. Use "expect(all_commands).not_to include_an_object(be_successfully_executed).and include_an_object(have_output(/partial/))" or something similar instead. There are also special matchers for "stdout" and "stderr"')
678
- # rubocop:enable Metrics/LineLength
679
663
 
680
664
  assert_success(false)
681
665
  assert_partial_output(expected, all_output)
@@ -689,9 +673,7 @@ module Aruba
689
673
  # If arg1 is true, return true if command was successful
690
674
  # If arg1 is false, return true if command failed
691
675
  def assert_success(success)
692
- # rubocop:disable Metrics/LineLength
693
676
  Aruba.platform.deprecated('The use of "#assert_success" is deprecated. Use "expect(last_command_started).to be_successfully_executed" or with "not_to" or the negative form "have_failed_running" (requires rspec >= 3.1)')
694
- # rubocop:enable Metrics/LineLength
695
677
 
696
678
  if success
697
679
  expect(last_command_started).to be_successfully_executed
@@ -702,18 +684,14 @@ module Aruba
702
684
 
703
685
  # @deprecated
704
686
  def assert_exit_status(status)
705
- # rubocop:disable Metrics/LineLength
706
687
  Aruba.platform.deprecated('The use of "#assert_success" is deprecated. Use "expect(last_command_started).to have_exit_status(status)"')
707
- # rubocop:enable Metrics/LineLength
708
688
 
709
689
  expect(last_command_started).to have_exit_status(status)
710
690
  end
711
691
 
712
692
  # @deprecated
713
693
  def assert_not_exit_status(status)
714
- # rubocop:disable Metrics/LineLength
715
694
  Aruba.platform.deprecated('The use of "#assert_success" is deprecated. Use "expect(last_command_started).not_to have_exit_status(status)"')
716
- # rubocop:enable Metrics/LineLength
717
695
 
718
696
  expect(last_exit_status).not_to eq(status),
719
697
  append_output_to("Exit status was #{last_exit_status} which was not expected.")
@@ -43,7 +43,7 @@ module Aruba
43
43
  # @param [String] file
44
44
  # The file which should exist
45
45
  def executable?(path)
46
- path = expand_path(path)
46
+ path = expand_path(path)
47
47
 
48
48
  Aruba.platform.file?(path) && Aruba.platform.executable?(path)
49
49
  end
@@ -41,7 +41,7 @@ module Aruba
41
41
  def push(p)
42
42
  @delegate_sd_obj << p
43
43
  end
44
- alias_method :<<, :push
44
+ alias << push
45
45
 
46
46
  # Remove last component of path
47
47
  #
@@ -32,7 +32,7 @@ module Aruba
32
32
  [ :on_magenta , 45 ],
33
33
  [ :on_cyan , 46 ],
34
34
  [ :on_white , 47 ]
35
- ]
35
+ ].freeze
36
36
 
37
37
  ATTRIBUTE_NAMES = ATTRIBUTES.transpose.first
38
38
  # :startdoc:
@@ -22,7 +22,6 @@ module Aruba
22
22
 
23
23
  public
24
24
 
25
- # rubocop:disable Metrics/MethodLength
26
25
  def initialize(command, opts = {})
27
26
  launchers = []
28
27
  launchers << Processes::DebugProcess
@@ -46,7 +45,6 @@ module Aruba
46
45
  rescue KeyError => e
47
46
  raise ArgumentError, e.message
48
47
  end
49
- # rubocop:enable Metrics/MethodLength
50
48
 
51
49
  # Stop command
52
50
  def stop(*)
@@ -71,6 +69,6 @@ module Aruba
71
69
 
72
70
  self
73
71
  end
74
- alias_method :run!, :start
72
+ alias run! start
75
73
  end
76
74
  end
@@ -38,7 +38,7 @@ module Aruba
38
38
  option_accessor :fixtures_directories, :contract => { Array => ArrayOf[String] }, :default => %w(features/fixtures spec/fixtures test/fixtures fixtures)
39
39
  option_accessor :command_runtime_environment, :contract => { Hash => Hash }, :default => ENV.to_hash
40
40
  # rubocop:disable Metrics/LineLength
41
- option_accessor(:command_search_paths, :contract => { ArrayOf[String] => ArrayOf[String] }) { |config| [File.join(config.root_directory.value, 'bin')] }
41
+ option_accessor(:command_search_paths, :contract => { ArrayOf[String] => ArrayOf[String] }) { |config| [File.join(config.root_directory.value, 'bin'), File.join(config.root_directory.value, 'exe')] }
42
42
  # rubocop:enable Metrics/LineLength
43
43
  option_accessor :keep_ansi, :contract => { Bool => Bool }, :default => false
44
44
  option_accessor :remove_ansi_escape_sequences, :contract => { Bool => Bool }, :default => true
@@ -9,7 +9,7 @@ Aruba.configure do |config|
9
9
  ENV['JRUBY_OPTS'] = "-X-C #{ENV['JRUBY_OPTS']}" unless ENV['JRUBY_OPTS'].include? '-X-C'
10
10
 
11
11
  # Faster startup for jruby
12
- ENV['JRUBY_OPTS'] = "--dev #{ENV['JRUBY_OPTS']}" unless ENV['JRUBY_OPTS'].include? '--dev'
12
+ ENV['JRUBY_OPTS'] = "--dev #{ENV['JRUBY_OPTS']}" unless ENV['JRUBY_OPTS'].include? '--dev'
13
13
 
14
14
  # force jRuby to use client JVM for faster startup times
15
15
  ENV['JAVA_OPTS'] = "-d32 #{ENV['JAVA_OPTS']}" if RbConfig::CONFIG['host_os'] =~ /solaris|sunos/i && !ENV['JAVA_OPTS'].include?('-d32')
@@ -21,7 +21,7 @@ module Aruba
21
21
  # @param [#notify] event_bus
22
22
  # The event queue which should be notified.
23
23
  def initialize(config, event_bus)
24
- @config = config
24
+ @config = config
25
25
  @event_bus = event_bus
26
26
  end
27
27
 
@@ -416,3 +416,7 @@ When(/^I send the signal "([^"]*)" to the command (?:"([^"]*)"|(?:started last))
416
416
  last_command_started.send_signal signal
417
417
  end
418
418
  end
419
+
420
+ Given(/^I look for executables in "(.*)" within the current directory$/) do |directory|
421
+ prepend_environment_variable 'PATH', expand_path(directory) + ':'
422
+ end
@@ -6,6 +6,14 @@ Given(/^I set the environment variable "(.*)" to "(.*)"/) do |variable, value|
6
6
  set_environment_variable(variable.to_s, value.to_s)
7
7
  end
8
8
 
9
+ Given(/^I append "(.*)" to the environment variable "(.*)"/) do |value, variable|
10
+ append_environment_variable(variable.to_s, value.to_s)
11
+ end
12
+
13
+ Given(/^I prepend "(.*)" to the environment variable "(.*)"/) do |value, variable|
14
+ prepend_environment_variable(variable.to_s, value.to_s)
15
+ end
16
+
9
17
  Given(/^I set the environment variables? to:/) do |table|
10
18
  table.hashes.each do |row|
11
19
  variable = row['variable'].to_s
@@ -22,7 +22,7 @@ module Aruba
22
22
  def to_byte
23
23
  bytes
24
24
  end
25
- alias_method :to_i, :to_byte
25
+ alias to_i to_byte
26
26
 
27
27
  # Convert to float
28
28
  def to_f
@@ -33,7 +33,7 @@ module Aruba
33
33
  def to_s
34
34
  to_i.to_s
35
35
  end
36
- alias_method :inspect, :to_s
36
+ alias inspect to_s
37
37
 
38
38
  # Move to other
39
39
  def coerce(other)
@@ -57,7 +57,7 @@ module Aruba
57
57
  end
58
58
  end
59
59
 
60
- TIME_FORMAT = "%Y-%m-%d %H:%M:%S"
60
+ TIME_FORMAT = "%Y-%m-%d %H:%M:%S".freeze
61
61
 
62
62
  if Time.method_defined?(:nsec)
63
63
  # @private
@@ -71,7 +71,7 @@ module Aruba
71
71
  end
72
72
  end
73
73
 
74
- DATE_TIME_FORMAT = "%a, %d %b %Y %H:%M:%S.%N %z"
74
+ DATE_TIME_FORMAT = "%a, %d %b %Y %H:%M:%S.%N %z".freeze
75
75
 
76
76
  # ActiveSupport sometimes overrides inspect. If `ActiveSupport` is
77
77
  # defined use a custom format string that includes more time precision.
@@ -26,7 +26,7 @@ RSpec::Matchers.define :match_path_pattern do |_|
26
26
  match do |actual|
27
27
  Aruba.platform.deprecated('The use of `expect().to match_path_pattern` is deprecated. Please use `expect().to include pattern /regex/` instead.')
28
28
 
29
- next !actual.select { |a| a == expected }.empty? if expected.is_a? String
29
+ next !actual.select { |a| a == expected }.empty? if expected.is_a? String
30
30
 
31
31
  !actual.grep(expected).empty?
32
32
  end
@@ -118,20 +118,20 @@ module Aruba
118
118
  # rubocop:enable Metrics/MethodLength
119
119
 
120
120
  def output_format(channel, string = '%s', &block)
121
- if block_given?
122
- output_formats[channel.to_sym] = block
123
- elsif string.is_a?(Proc)
124
- output_formats[channel.to_sym] = string
125
- else
126
- output_formats[channel.to_sym] = proc { |*args| format(string, *args) }
127
- end
121
+ output_formats[channel.to_sym] = if block_given?
122
+ block
123
+ elsif string.is_a?(Proc)
124
+ string
125
+ else
126
+ proc { |*args| format(string, *args) }
127
+ end
128
128
  end
129
129
 
130
130
  public
131
131
 
132
132
  # Reset announcer
133
133
  def reset
134
- @announcer = @announcers.first
134
+ @announcer = @announcers.first
135
135
  end
136
136
 
137
137
  # Change mode of announcer
@@ -185,7 +185,7 @@ module Aruba
185
185
  return unless activated?(channel)
186
186
 
187
187
  message = if block_given?
188
- the_output_format.call(block.call)
188
+ the_output_format.call(yield)
189
189
  else
190
190
  the_output_format.call(*args)
191
191
  end
@@ -12,7 +12,7 @@ module Aruba
12
12
  :atime,
13
13
  :mtime,
14
14
  :size
15
- ]
15
+ ].freeze
16
16
 
17
17
  extend Forwardable
18
18
 
@@ -19,7 +19,7 @@ module Aruba
19
19
  ENV.clear
20
20
  ENV.update env
21
21
 
22
- block.call if block_given?
22
+ yield if block_given?
23
23
  ensure
24
24
  ENV.clear
25
25
  ENV.update old_env
@@ -29,7 +29,7 @@ module Aruba
29
29
  longest_key = hash.keys.map(&:to_s).max_by(&:length)
30
30
  return '' if longest_key.nil?
31
31
 
32
- name_size = longest_key.length
32
+ name_size = longest_key.length
33
33
 
34
34
  if RUBY_VERSION < '2'
35
35
  rows = []
@@ -20,7 +20,7 @@ module Aruba
20
20
  def to_s
21
21
  __getobj__.to_s
22
22
  end
23
- alias_method :inspect, :to_s
23
+ alias inspect to_s
24
24
  end
25
25
  end
26
26
  end
@@ -11,19 +11,17 @@ module Aruba
11
11
  def initialize(other_env, &block)
12
12
  @other_env = other_env
13
13
 
14
- if RUBY_VERSION <= '1.9.3'
15
- # rubocop:disable Style/EachWithObject
16
- @other_env = @other_env.to_hash.inject({}) { |a, (k, v)| a[k] = v.to_s; a }
17
- # rubocop:enable Style/EachWithObject
18
- else
19
- @other_env = @other_env.to_h.each_with_object({}) { |(k, v), a| a[k] = v.to_s }
20
- end
21
-
22
- if block_given?
23
- @block = block
24
- else
25
- @block = nil
26
- end
14
+ @other_env = if RUBY_VERSION <= '1.9.3'
15
+ # rubocop:disable Style/EachWithObject
16
+ @other_env.to_hash.inject({}) { |a, (k, v)| a[k] = v.to_s; a }
17
+ # rubocop:enable Style/EachWithObject
18
+ else
19
+ @other_env.to_h.each_with_object({}) { |(k, v), a| a[k] = v.to_s }
20
+ end
21
+
22
+ @block = if block_given?
23
+ block
24
+ end
27
25
  end
28
26
 
29
27
  def call(env)
@@ -62,11 +60,11 @@ module Aruba
62
60
  def initialize(env = ENV)
63
61
  @actions = []
64
62
 
65
- if RUBY_VERSION < '2.0'
66
- @env = env.to_hash
67
- else
68
- @env = env.to_h
69
- end
63
+ @env = if RUBY_VERSION < '2.0'
64
+ env.to_hash
65
+ else
66
+ env.to_h
67
+ end
70
68
  end
71
69
 
72
70
  # Update environment with other en
@@ -23,7 +23,7 @@ module Aruba
23
23
  def to_s
24
24
  __getobj__.to_s
25
25
  end
26
- alias_method :inspect, :to_s
26
+ alias inspect to_s
27
27
  end
28
28
  end
29
29
  end
@@ -36,23 +36,23 @@ module Aruba
36
36
  def initialize(env = ENV.to_hash)
37
37
  @actions = []
38
38
 
39
- if RUBY_VERSION <= '1.9.3'
40
- # rubocop:disable Style/EachWithObject
41
- @env = env.inject({}) { |a, (k,v)| a[k.to_s.upcase] = v; a }
42
- # rubocop:enable Style/EachWithObject
43
- else
44
- @env = env.each_with_object({}) { |(k,v), a| a[k.to_s.upcase] = v }
45
- end
39
+ @env = if RUBY_VERSION <= '1.9.3'
40
+ # rubocop:disable Style/EachWithObject
41
+ env.inject({}) { |a, (k,v)| a[k.to_s.upcase] = v; a }
42
+ # rubocop:enable Style/EachWithObject
43
+ else
44
+ env.each_with_object({}) { |(k,v), a| a[k.to_s.upcase] = v }
45
+ end
46
46
  end
47
47
 
48
48
  def update(other_env, &block)
49
- if RUBY_VERSION <= '1.9.3'
50
- # rubocop:disable Style/EachWithObject
51
- other_env = other_env.inject({}) { |a, (k,v)| a[k.to_s.upcase] = v; a }
52
- # rubocop:enable Style/EachWithObject
53
- else
54
- other_env = other_env.each_with_object({}) { |(k,v), a| a[k.to_s.upcase] = v }
55
- end
49
+ other_env = if RUBY_VERSION <= '1.9.3'
50
+ # rubocop:disable Style/EachWithObject
51
+ other_env.inject({}) { |a, (k,v)| a[k.to_s.upcase] = v; a }
52
+ # rubocop:enable Style/EachWithObject
53
+ else
54
+ other_env.each_with_object({}) { |(k,v), a| a[k.to_s.upcase] = v }
55
+ end
56
56
 
57
57
  super(other_env, &block)
58
58
  end
@@ -125,7 +125,7 @@ module Aruba
125
125
 
126
126
  format '#<%s:%s commandline="%s": output="%s">', self.class, self.object_id, commandline, out
127
127
  end
128
- alias_method :to_s, :inspect
128
+ alias to_s inspect
129
129
 
130
130
  private
131
131
 
@@ -17,8 +17,6 @@ module Aruba
17
17
  mode == :debug || (mode.is_a?(Class) && mode <= DebugProcess)
18
18
  end
19
19
 
20
- # rubocop:disable Metrics/MethodLength
21
- # rubocop:disable Metrics/CyclomaticComplexity
22
20
  def start
23
21
  Dir.chdir @working_directory do
24
22
  Aruba.platform.with_environment(environment) do
@@ -26,8 +24,6 @@ module Aruba
26
24
  end
27
25
  end
28
26
  end
29
- # rubocop:enable Metrics/CyclomaticComplexity
30
- # rubocop:enable Metrics/MethodLength
31
27
 
32
28
  # Return stdin
33
29
  #
@@ -50,7 +50,6 @@ module Aruba
50
50
  # Run code for process which was started
51
51
  #
52
52
  # rubocop:disable Metrics/MethodLength
53
- # rubocop:disable Metrics/CyclomaticComplexity
54
53
  def start
55
54
  # rubocop:disable Metrics/LineLength
56
55
  fail CommandAlreadyStartedError, %(Command "#{commandline}" has already been started. Please `#stop` the command first and `#start` it again. Alternatively use `#restart`.\n#{caller.join("\n")}) if started?
@@ -58,7 +57,7 @@ module Aruba
58
57
 
59
58
  @started = true
60
59
 
61
- @process = ChildProcess.build(*[command_string.to_a, arguments].flatten)
60
+ @process = ChildProcess.build(*[command_string.to_a, arguments].flatten)
62
61
  @stdout_file = Tempfile.new('aruba-stdout-')
63
62
  @stderr_file = Tempfile.new('aruba-stderr-')
64
63
 
@@ -91,8 +90,7 @@ module Aruba
91
90
 
92
91
  yield self if block_given?
93
92
  end
94
- # rubocop:enable Metrics/MethodLength
95
- # rubocop:enable Metrics/CyclomaticComplexity
93
+ # rubocop:disable Metrics/MethodLength
96
94
 
97
95
  # Access to stdout of process
98
96
  def stdin
@@ -264,7 +262,7 @@ module Aruba
264
262
 
265
263
  def wait_for_io(time_to_wait, &block)
266
264
  sleep time_to_wait.to_i
267
- block.call
265
+ yield
268
266
  end
269
267
 
270
268
  def read_temporary_output_file(file)
@@ -49,11 +49,11 @@ module Aruba
49
49
 
50
50
  @environment.update(@config.command_runtime_environment)
51
51
 
52
- if Aruba::VERSION < '1'
53
- @command_monitor = opts.fetch(:command_monitor, Aruba.platform.command_monitor.new(:announcer => @announcer))
54
- else
55
- @command_monitor = opts.fetch(:command_monitor, Aruba.platform.command_monitor.new)
56
- end
52
+ @command_monitor = if Aruba::VERSION < '1'
53
+ opts.fetch(:command_monitor, Aruba.platform.command_monitor.new(:announcer => @announcer))
54
+ else
55
+ opts.fetch(:command_monitor, Aruba.platform.command_monitor.new)
56
+ end
57
57
 
58
58
  @logger = opts.fetch(:logger, Aruba.platform.logger.new)
59
59
  @logger.mode = @config.log_level
@@ -7,7 +7,7 @@ module Aruba
7
7
  public
8
8
 
9
9
  def initialize(runtime)
10
- @runtime = runtime
10
+ @runtime = runtime
11
11
  end
12
12
 
13
13
  def call
@@ -1,3 +1,3 @@
1
1
  module Aruba
2
- VERSION = '0.13.0'
2
+ VERSION = '0.14.0'.freeze
3
3
  end
@@ -3,7 +3,7 @@ require 'securerandom'
3
3
  require 'aruba/api'
4
4
  require 'fileutils'
5
5
 
6
- describe Aruba::Api do
6
+ describe Aruba::Api do
7
7
  include_context 'uses aruba API'
8
8
 
9
9
  describe '#all_paths' do
@@ -110,7 +110,7 @@ describe Aruba::Api do
110
110
  let(:content) { 'asdf' }
111
111
 
112
112
  before :each do
113
- @aruba.set_environment_variable 'HOME', File.expand_path(@aruba.aruba.current_directory)
113
+ @aruba.set_environment_variable 'HOME', File.expand_path(@aruba.aruba.current_directory)
114
114
  end
115
115
 
116
116
  context 'when does not exist' do
@@ -164,7 +164,7 @@ describe Aruba::Api do
164
164
  let(:path) { File.join(@aruba.aruba.current_directory, name) }
165
165
 
166
166
  before :each do
167
- @aruba.set_environment_variable 'HOME', File.expand_path(@aruba.aruba.current_directory)
167
+ @aruba.set_environment_variable 'HOME', File.expand_path(@aruba.aruba.current_directory)
168
168
  end
169
169
 
170
170
  context 'when does not exist' do
@@ -196,7 +196,7 @@ describe Aruba::Api do
196
196
  context 'when has subdirectories' do
197
197
  context 'when is simple path' do
198
198
  let(:existing_files) { @aruba.list(name) }
199
- let(:expected_files) { content.map { |c| File.join(name, c) }.sort }
199
+ let(:expected_files) { content.map { |c| File.join(name, c) }.sort }
200
200
 
201
201
  it { expect(expected_files - existing_files).to be_empty}
202
202
  end
@@ -227,7 +227,7 @@ describe Aruba::Api do
227
227
  let(:options) { {} }
228
228
 
229
229
  before :each do
230
- @aruba.set_environment_variable 'HOME', File.expand_path(@aruba.aruba.current_directory)
230
+ @aruba.set_environment_variable 'HOME', File.expand_path(@aruba.aruba.current_directory)
231
231
  end
232
232
 
233
233
  context 'when file' do
@@ -326,7 +326,7 @@ describe Aruba::Api do
326
326
  let(:options) { {} }
327
327
 
328
328
  before :each do
329
- @aruba.set_environment_variable 'HOME', File.expand_path(@aruba.aruba.current_directory)
329
+ @aruba.set_environment_variable 'HOME', File.expand_path(@aruba.aruba.current_directory)
330
330
  end
331
331
 
332
332
  context 'when file' do
@@ -784,7 +784,7 @@ describe Aruba::Api do
784
784
  let(:permissions) { '0655' }
785
785
 
786
786
  before :each do
787
- @aruba.set_environment_variable 'HOME', File.expand_path(@aruba.aruba.current_directory)
787
+ @aruba.set_environment_variable 'HOME', File.expand_path(@aruba.aruba.current_directory)
788
788
  end
789
789
 
790
790
  before(:each) do
@@ -822,7 +822,7 @@ describe Aruba::Api do
822
822
  let(:permissions) { '0655' }
823
823
 
824
824
  before :each do
825
- @aruba.set_environment_variable 'HOME', File.expand_path(@aruba.aruba.current_directory)
825
+ @aruba.set_environment_variable 'HOME', File.expand_path(@aruba.aruba.current_directory)
826
826
  end
827
827
 
828
828
  before(:each) do
@@ -1047,7 +1047,7 @@ describe Aruba::Api do
1047
1047
  end . not_to raise_error
1048
1048
  end
1049
1049
 
1050
- it "raises RSpec::Expectations::ExpectationNotMetError when the inner expectations don't match" do
1050
+ it "raises RSpec::Expectations::ExpectationNotMetError when the inner expectations don't match" do
1051
1051
  expect do
1052
1052
  @aruba.with_file_content @file_name do |full_content|
1053
1053
  expect(full_content).to match(/zoo/)
@@ -1125,20 +1125,20 @@ describe Aruba::Api do
1125
1125
  it "respond to input" do
1126
1126
  @aruba.type "Hello"
1127
1127
  @aruba.type ""
1128
- expect(@aruba.all_output).to eq "Hello\n"
1128
+ expect(@aruba.all_output).to eq "Hello\n"
1129
1129
  end
1130
1130
 
1131
1131
  it "respond to close_input" do
1132
1132
  @aruba.type "Hello"
1133
1133
  @aruba.close_input
1134
- expect(@aruba.all_output).to eq "Hello\n"
1134
+ expect(@aruba.all_output).to eq "Hello\n"
1135
1135
  end
1136
1136
 
1137
1137
  it "pipes data" do
1138
1138
  @aruba.write_file(@file_name, "Hello\nWorld!")
1139
1139
  @aruba.pipe_in_file(@file_name)
1140
1140
  @aruba.close_input
1141
- expect(@aruba.all_output).to eq "Hello\nWorld!"
1141
+ expect(@aruba.all_output).to eq "Hello\nWorld!"
1142
1142
  end
1143
1143
  end
1144
1144
 
@@ -1,7 +1,7 @@
1
1
  require 'spec_helper'
2
2
  require 'aruba/api'
3
3
 
4
- describe "Aruba JRuby Startup Helper" do
4
+ describe "Aruba JRuby Startup Helper" do
5
5
  before(:all) do
6
6
  @fake_env = ENV.clone
7
7
  end
@@ -76,7 +76,7 @@ RSpec.describe 'File Matchers' do
76
76
  end
77
77
 
78
78
  context "when matcher" do
79
- it { expect(have_file_content(a_string_starting_with "a").description).to eq('have file content: a string starting with "a"') }
79
+ it { expect(have_file_content(a_string_starting_with("a")).description).to eq('have file content: a string starting with "a"') }
80
80
  end
81
81
  end
82
82
 
@@ -99,7 +99,7 @@ RSpec.describe 'File Matchers' do
99
99
 
100
100
  example 'for a matcher' do
101
101
  expect do
102
- expect(@file_name).to have_file_content(a_string_starting_with "z")
102
+ expect(@file_name).to have_file_content(a_string_starting_with("z"))
103
103
  end.to fail_with('expected "test.txt" to have file content: a string starting with "z"')
104
104
  end
105
105
  end
@@ -35,7 +35,7 @@ module SpecHelpers
35
35
  captured_stream.unlink
36
36
  stream_io.reopen(origin_stream)
37
37
  end
38
- alias_method :silence, :capture
38
+ alias silence capture
39
39
  end
40
40
  end
41
41
 
@@ -21,7 +21,7 @@ RSpec.shared_examples 'a basic configuration' do
21
21
  end
22
22
 
23
23
  context 'when one tries to write a value' do
24
- it { expect{ config.new_opt = 1}.to raise_error NoMethodError }
24
+ it { expect{ config.new_opt = 1}.to raise_error NoMethodError }
25
25
  end
26
26
 
27
27
  context 'when block is defined' do
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: aruba
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.13.0
4
+ version: 0.14.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Aslak Hellesøy
@@ -13,7 +13,7 @@ authors:
13
13
  autorequire:
14
14
  bindir: bin
15
15
  cert_chain: []
16
- date: 2016-01-26 00:00:00.000000000 Z
16
+ date: 2016-03-08 00:00:00.000000000 Z
17
17
  dependencies:
18
18
  - !ruby/object:Gem::Dependency
19
19
  name: cucumber
@@ -227,7 +227,9 @@ files:
227
227
  - features/steps/command/stdout.feature
228
228
  - features/steps/command/stop.feature
229
229
  - features/steps/core/announce.feature
230
+ - features/steps/environment/append_environment_variable.feature
230
231
  - features/steps/environment/home_variable.feature
232
+ - features/steps/environment/prepend_environment_variable.feature
231
233
  - features/steps/environment/set_environment_variable.feature
232
234
  - features/steps/filesystem/append_to_file.feature
233
235
  - features/steps/filesystem/cd_to_directory.feature
@@ -473,7 +475,7 @@ rubyforge_project:
473
475
  rubygems_version: 2.5.1
474
476
  signing_key:
475
477
  specification_version: 4
476
- summary: aruba-0.13.0
478
+ summary: aruba-0.14.0
477
479
  test_files:
478
480
  - features/api/command/find_command.feature
479
481
  - features/api/command/last_command_started.feature
@@ -560,7 +562,9 @@ test_files:
560
562
  - features/steps/command/stdout.feature
561
563
  - features/steps/command/stop.feature
562
564
  - features/steps/core/announce.feature
565
+ - features/steps/environment/append_environment_variable.feature
563
566
  - features/steps/environment/home_variable.feature
567
+ - features/steps/environment/prepend_environment_variable.feature
564
568
  - features/steps/environment/set_environment_variable.feature
565
569
  - features/steps/filesystem/append_to_file.feature
566
570
  - features/steps/filesystem/cd_to_directory.feature