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.
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 |
# File 'lib/assert/cli.rb', line 41 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
27 28 29 30 31 32 33 34 35 36 37 38 39 |
# File 'lib/assert/cli.rb', line 27 def self.bench(start_msg, &block) unless 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
11 12 13 |
# File 'lib/assert/cli.rb', line 11 def self.debug?(args) args.include?("-d") || args.include?("--debug") end |
.debug_finish_msg(time_in_ms) ⇒ Object
23 24 25 |
# File 'lib/assert/cli.rb', line 23 def self.debug_finish_msg(time_in_ms) " (#{time_in_ms} ms)" end |
.debug_msg(msg) ⇒ Object
15 16 17 |
# File 'lib/assert/cli.rb', line 15 def self.debug_msg(msg) "[DEBUG] #{msg}" end |
.debug_start_msg(msg) ⇒ Object
19 20 21 |
# File 'lib/assert/cli.rb', line 19 def self.debug_start_msg(msg) debug_msg("#{msg}...".ljust(30)) end |
Instance Method Details
#help ⇒ Object
92 93 94 95 96 |
# File 'lib/assert/cli.rb', line 92 def help "Usage: assert [options] [TESTS]\n\n"\ "Options:"\ "#{@cli}" end |
#run ⇒ Object
70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 |
# File 'lib/assert/cli.rb', line 70 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 => ex puts "#{ex.}\n\n" puts Assert.config.debug ? ex.backtrace.join("\n") : help exit(1) rescue => ex puts "#{ex.class}: #{ex.}" puts ex.backtrace.join("\n") exit(1) end exit(0) end |