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.
34 35 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 |
# File 'lib/assert/cli.rb', line 34 def initialize(*args) @args = args @cli = CLIRB.new do option "runner_seed", "use a given seed to run tests", abbrev: "s", value: Integer 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
24 25 26 27 28 29 30 31 32 |
# File 'lib/assert/cli.rb', line 24 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
8 9 10 |
# File 'lib/assert/cli.rb', line 8 def self.debug?(args) args.include?("-d") || args.include?("--debug") end |
.debug_finish_msg(time_in_ms) ⇒ Object
20 21 22 |
# File 'lib/assert/cli.rb', line 20 def self.debug_finish_msg(time_in_ms) " (#{time_in_ms} ms)" end |
.debug_msg(msg) ⇒ Object
12 13 14 |
# File 'lib/assert/cli.rb', line 12 def self.debug_msg(msg) "[DEBUG] #{msg}" end |
.debug_start_msg(msg) ⇒ Object
16 17 18 |
# File 'lib/assert/cli.rb', line 16 def self.debug_start_msg(msg) debug_msg("#{msg}...".ljust(30)) end |
Instance Method Details
#help ⇒ Object
85 86 87 88 89 |
# File 'lib/assert/cli.rb', line 85 def help "Usage: assert [options] [TESTS]\n\n"\ "Options:"\ "#{@cli}" end |
#run ⇒ Object
63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 |
# File 'lib/assert/cli.rb', line 63 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 |