Class: Assert::CLI
- Inherits:
-
Object
- Object
- Assert::CLI
- Defined in:
- lib/assert/cli.rb
Class Method Summary collapse
- .bench(start_msg, &block) ⇒ Object
- .debug?(args) ⇒ Boolean
- .debug_finish_msg(time_in_ms) ⇒ Object
- .debug_msg(msg) ⇒ Object
- .debug_start_msg(msg) ⇒ Object
Instance Method Summary collapse
- #help ⇒ Object
-
#initialize(*args) ⇒ CLI
constructor
A new instance of CLI.
- #run ⇒ Object
Constructor Details
#initialize(*args) ⇒ CLI
Returns a new instance of CLI.
36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 |
# File 'lib/assert/cli.rb', line 36 def initialize(*args) @args = args @cli = CLIRB.new do option 'runner_seed', 'use a given seed to run tests', { :abbrev => 's', :value => Fixnum } option 'changed_only', 'only run test files with changes', { :abbrev => 'c' } option 'changed_ref', 'reference for changes, use with `-c` opt', { :abbrev => 'r', :value => '' } option 'single_test', 'only run the test on the given file/line', { :abbrev => 't', :value => '' } option 'pp_objects', 'pretty-print objects in fail messages', { :abbrev => 'p' } option 'capture_output', 'capture stdout and display in result details', { :abbrev => 'o' } option 'halt_on_fail', 'halt a test when it fails', { :abbrev => 'h' } option 'profile', 'output test profile info', { :abbrev => 'e' } option 'verbose', 'output verbose runtime test info', { :abbrev => 'v' } option 'list', 'list test files on $stdout', { :abbrev => 'l' } # show loaded test files, cli err backtraces, etc option 'debug', 'run in debug mode', { :abbrev => 'd' } end end |
Class Method Details
.bench(start_msg, &block) ⇒ Object
26 27 28 29 30 31 32 33 34 |
# File 'lib/assert/cli.rb', line 26 def self.bench(start_msg, &block) if !Assert.config.debug block.call; return end print debug_start_msg(start_msg) RoundedMillisecondTime.new(Benchmark.measure(&block).real).tap do |time_in_ms| puts debug_finish_msg(time_in_ms) end end |
.debug?(args) ⇒ Boolean
10 11 12 |
# File 'lib/assert/cli.rb', line 10 def self.debug?(args) args.include?('-d') || args.include?('--debug') end |
.debug_finish_msg(time_in_ms) ⇒ Object
22 23 24 |
# File 'lib/assert/cli.rb', line 22 def self.debug_finish_msg(time_in_ms) " (#{time_in_ms} ms)" end |
.debug_msg(msg) ⇒ Object
14 15 16 |
# File 'lib/assert/cli.rb', line 14 def self.debug_msg(msg) "[DEBUG] #{msg}" end |
.debug_start_msg(msg) ⇒ Object
18 19 20 |
# File 'lib/assert/cli.rb', line 18 def self.debug_start_msg(msg) debug_msg("#{msg}...".ljust(30)) end |
Instance Method Details
#help ⇒ Object
98 99 100 101 102 |
# File 'lib/assert/cli.rb', line 98 def help "Usage: assert [options] [TESTS]\n\n"\ "Options:"\ "#{@cli}" end |
#run ⇒ Object
76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 |
# File 'lib/assert/cli.rb', line 76 def run begin @cli.parse!(@args) catch(:halt) do Assert::AssertRunner.new(Assert.config, @cli.args, @cli.opts).run end rescue CLIRB::HelpExit puts help rescue CLIRB::VersionExit puts Assert::VERSION rescue CLIRB::Error => exception puts "#{exception.}\n\n" puts Assert.config.debug ? exception.backtrace.join("\n") : help exit(1) rescue StandardError => exception puts "#{exception.class}: #{exception.}" puts exception.backtrace.join("\n") exit(1) end exit(0) end |