Add dry-run to config

This commit is contained in:
Michael Miller 2019-03-22 14:05:48 -06:00
parent 46e3246c5c
commit 435f971c87
3 changed files with 24 additions and 1 deletions

View file

@ -16,6 +16,7 @@ module Spectator
parser.on("-v", "--verbose", "Verbose output using document formatter") { builder.formatter = Formatting::DocumentFormatter.new }
parser.on("-f", "--fail-fast", "Stop testing on first failure") { builder.fail_fast }
parser.on("-b", "--fail-blank", "Fail if there are no examples") { builder.fail_blank }
parser.on("-d", "--dry-run", "Don't run any tests, output what would have run") { builder.dry_run }
parser.on("-h", "--help", "Show this help") { puts parser; exit }
parser.on("-e", "--example STRING", "Run examples whose full nested names include STRING") { |pattern| raise NotImplementedError.new("-e") }
parser.on("-l", "--line LINE", "Run examples whose line matches LINE") { |line| raise NotImplementedError.new("-l") }

View file

@ -10,11 +10,16 @@ module Spectator
# Indicates whether the test should fail if there are no examples.
getter? fail_blank : Bool
# Indicates whether the test should be done as a dry-run.
# Examples won't run, but the output will show that they did.
getter? dry_run : Bool
# Creates a new configuration.
def initialize(builder)
@formatter = builder.formatter
@fail_fast = builder.fail_fast?
@fail_blank = builder.fail_blank?
@dry_run = builder.dry_run?
end
end
end

View file

@ -11,6 +11,7 @@ module Spectator
@formatter : Formatting::Formatter? = nil
@fail_fast = false
@fail_blank = false
@dry_run = false
# Sets the formatter to use for reporting test progress and results.
def formatter=(formatter : Formatting::Formatter)
@ -50,7 +51,7 @@ module Spectator
self.fail_blank = true
end
# Sets teh fail-blank mode.
# Enables or disables fail-blank mode.
def fail_blank=(flag)
@fail_blank = flag
end
@ -61,6 +62,22 @@ module Spectator
@fail_blank
end
# Enables dry-run mode.
def dry_run
self.dry_run = true
end
# Enables or disables dry-run mode.
def dry_run=(flag)
@dry_run = flag
end
# Indicates whether dry-run mode is enabled.
# In this mode, no tests are run, but output acts like they were.
def dry_run?
@dry_run
end
# Creates a configuration.
def build : Config
Config.new(self)