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
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.message}\n\n" puts Assert.config.debug ? exception.backtrace.join("\n") : help exit(1) rescue StandardError => exception puts "#{exception.class}: #{exception.message}" puts exception.backtrace.join("\n") exit(1) end exit(0) end |