mirror of
https://github.com/ruby/ruby.git
synced 2025-08-24 05:25:34 +02:00
87 lines
2.3 KiB
Ruby
87 lines
2.3 KiB
Ruby
#!/usr/bin/env ruby
|
|
|
|
$:.unshift File.expand_path(File.dirname(__FILE__) + '/../lib')
|
|
|
|
require 'mspec/version'
|
|
require 'mspec/utils/options'
|
|
require 'mspec/utils/script'
|
|
|
|
|
|
class MSpecRun < MSpecScript
|
|
def initialize
|
|
super
|
|
|
|
config[:files] = []
|
|
end
|
|
|
|
def options(argv=ARGV)
|
|
options = MSpecOptions.new "mspec run [options] (FILE|DIRECTORY|GLOB)+", 30, config
|
|
|
|
options.doc " Ask yourself:"
|
|
options.doc " 1. What specs to run?"
|
|
options.doc " 2. How to modify the execution?"
|
|
options.doc " 3. How to modify the guard behavior?"
|
|
options.doc " 4. How to display the output?"
|
|
options.doc " 5. What action to perform?"
|
|
options.doc " 6. When to perform it?"
|
|
|
|
options.doc "\n What specs to run"
|
|
options.filters
|
|
|
|
options.doc "\n How to modify the execution"
|
|
options.chdir
|
|
options.prefix
|
|
options.configure { |f| load f }
|
|
options.randomize
|
|
options.repeat
|
|
options.pretend
|
|
options.interrupt
|
|
options.timeout
|
|
|
|
options.doc "\n How to modify the guard behavior"
|
|
options.unguarded
|
|
options.verify
|
|
|
|
options.doc "\n How to display their output"
|
|
options.formatters
|
|
options.verbose
|
|
|
|
options.doc "\n What action to perform"
|
|
options.actions
|
|
|
|
options.doc "\n When to perform it"
|
|
options.action_filters
|
|
|
|
options.doc "\n Help!"
|
|
options.debug
|
|
options.version MSpec::VERSION
|
|
options.help
|
|
|
|
options.doc "\n Custom options"
|
|
custom_options options
|
|
|
|
options.doc "\n How might this work in the real world?"
|
|
options.doc "\n 1. To simply run some specs"
|
|
options.doc "\n $ mspec path/to/the/specs"
|
|
options.doc " mspec path/to/the_file_spec.rb"
|
|
options.doc "\n 2. To run specs tagged with 'fails'"
|
|
options.doc "\n $ mspec -g fails path/to/the_file_spec.rb"
|
|
options.doc "\n 3. To start the debugger before the spec matching 'this crashes'"
|
|
options.doc "\n $ mspec --spec-debug -S 'this crashes' path/to/the_file_spec.rb"
|
|
options.doc "\n 4. To run some specs matching 'this crashes'"
|
|
options.doc "\n $ mspec -e 'this crashes' path/to/the_file_spec.rb"
|
|
|
|
options.doc ""
|
|
|
|
patterns = options.parse argv
|
|
@files = files_from_patterns(patterns)
|
|
end
|
|
|
|
def run
|
|
MSpec.register_tags_patterns config[:tags_patterns]
|
|
MSpec.register_files @files
|
|
|
|
MSpec.process
|
|
exit MSpec.exit_code
|
|
end
|
|
end
|