module CliTester
Constants
- VERSION
Public Class Methods
included(example_group)
click to toggle source
# File lib/cli_tester.rb, line 24 def self.included(example_group) example_group.extend(self) end
Public Instance Methods
run_command(cmd: nil, args: nil, working_directory: nil)
click to toggle source
# File lib/cli_tester.rb, line 32 def run_command(cmd: nil, args: nil, working_directory: nil) if cmd path = "bin/" + cmd else path = "bin/" + File.basename(Dir.pwd) end if !File.exist?(path) executable = [cmd] else executable = [File.expand_path(path)] end if args executable += args end if working_directory current_working_directory = Dir.pwd Dir.chdir(working_directory) end result = CommandResult.new result.cmd = executable begin o, e = Cheetah.run(executable, stdout: :capture, stderr: :capture ) result.exit_code = 0 result.stdout = o result.stderr = e rescue Cheetah::ExecutionFailed => e result.error = e result.exit_code = e.status.exitstatus result.stdout = e.stdout result.stderr = e.stderr end if working_directory Dir.chdir(current_working_directory) end result end