Module: Pork
- Defined in:
- lib/pork.rb,
lib/pork/api.rb,
lib/pork/env.rb,
lib/pork/stat.rb,
lib/pork/error.rb,
lib/pork/suite.rb,
lib/pork/expect.rb,
lib/pork/report.rb,
lib/pork/runner.rb,
lib/pork/context.rb,
lib/pork/inspect.rb,
lib/pork/version.rb,
lib/pork/executor.rb,
lib/pork/isolator.rb,
lib/pork/more/color.rb,
lib/pork/report/dot.rb,
lib/pork/more/should.rb,
lib/pork/mode/parallel.rb,
lib/pork/mode/shuffled.rb,
lib/pork/extra/rainbows.rb,
lib/pork/mode/sequential.rb,
lib/pork/extra/show_source.rb,
lib/pork/report/description.rb,
lib/pork/report/progressbar.rb,
lib/pork/more/bottomup_backtrace.rb
Defined Under Namespace
Modules: API, BottomupBacktrace, Color, Context, Rainbows, Should, ShowSource
Classes: Description, Dot, Env, Executor, Expect, Inspect, Isolator, Parallel, Progressbar, Report, Runner, Sequential, Shuffled, Stat, Suite
Constant Summary
collapse
- Error =
Class.new(StandardError)
- Failure =
Class.new(Error)
- Skip =
Class.new(Error)
- VERSION =
'2.0.0'
Class Method Summary
collapse
Class Method Details
.autorun(auto = true) ⇒ Object
111
112
113
114
115
116
117
118
|
# File 'lib/pork.rb', line 111
def self.autorun auto=true
@auto = auto
@autorun ||= at_exit do
next unless @auto
run
exit stat.failures + stat.errors + ($! && 1).to_i
end
end
|
.execute ⇒ Object
83
84
85
86
87
88
89
90
91
92
93
94
|
# File 'lib/pork.rb', line 83
def self.execute
if ENV['PORK_TEST']
if tests = Executor[ENV['PORK_TEST']]
@stat = Executor.execute(:paths => tests)
else
puts "Cannot find test: #{ENV['PORK_TEST']}"
exit 254
end
else
@stat = Executor.execute
end
end
|
.execute_extensions ⇒ Object
26
27
28
|
# File 'lib/pork.rb', line 26
def self.execute_extensions
@execute_extensions ||= []
end
|
.execute_mode(mode = nil) ⇒ Object
default to :shuffled while eliminating warnings for uninitialized ivar
8
9
10
|
# File 'lib/pork.rb', line 8
def self.execute_mode mode=nil
@execute_mode = mode || @execute_mode ||= :shuffled
end
|
.inspect_failure_mode(inspect = nil) ⇒ Object
default to :auto while eliminating warnings for uninitialized ivar
4
5
6
|
# File 'lib/pork/inspect.rb', line 4
def self.inspect_failure_mode inspect=nil
@inspect = inspect || @inspect ||= :auto
end
|
.loaded(at = Time.now) ⇒ Object
106
107
108
109
|
# File 'lib/pork.rb', line 106
def self.loaded at=Time.now
@at = at
@files = $LOADED_FEATURES.size
end
|
.protected_exceptions ⇒ Object
30
31
32
|
# File 'lib/pork.rb', line 30
def self.protected_exceptions
@protected_exceptions ||= [Pork::Error, StandardError]
end
|
.Rainbows! ⇒ Object
34
35
36
37
|
# File 'lib/pork.rb', line 34
def self.Rainbows!
require 'pork/extra/rainbows'
report_extensions << Rainbows
end
|
.report_class ⇒ Object
18
19
20
|
# File 'lib/pork.rb', line 18
def self.report_class
const_get(report_mode.to_s.capitalize)
end
|
.report_extensions ⇒ Object
22
23
24
|
# File 'lib/pork.rb', line 22
def self.report_extensions
@report_extensions ||= []
end
|
.report_mode(mode = nil) ⇒ Object
12
13
14
15
16
|
# File 'lib/pork.rb', line 12
def self.report_mode mode=nil
@report_mode = mode || @report_mode ||= :dot
require "pork/report/#{@report_mode}"
@report_mode
end
|
.reseed ⇒ Object
56
57
58
59
60
61
62
63
64
|
# File 'lib/pork.rb', line 56
def self.reseed
if ENV['PORK_SEED']
seed
else
new_seed = Random.new_seed
Random.srand(new_seed)
new_seed
end
end
|
.run ⇒ Object
96
97
98
99
100
101
102
103
104
|
# File 'lib/pork.rb', line 96
def self.run
srand
execute_mode(ENV['PORK_MODE'])
report_mode(ENV['PORK_REPORT'])
trap
stat.loaded(@at, @files) if instance_variable_defined?(:@at)
execute
stat.report
end
|
.seed ⇒ Object
48
49
50
51
52
53
54
|
# File 'lib/pork.rb', line 48
def self.seed
@seed ||= if Random.const_defined?(:DEFAULT)
Random::DEFAULT.seed
else
Thread.current.randomizer.seed end
end
|
.show_source ⇒ Object
39
40
41
42
|
# File 'lib/pork.rb', line 39
def self.show_source
require 'pork/extra/show_source'
report_extensions << ShowSource
end
|
.srand ⇒ Object
66
67
68
69
70
71
72
73
|
# File 'lib/pork.rb', line 66
def self.srand
case ENV['PORK_SEED']
when nil, 'random'
Random.srand(seed)
else
Random.srand(Integer(ENV['PORK_SEED']))
end
end
|
.stat ⇒ Object
44
45
46
|
# File 'lib/pork.rb', line 44
def self.stat
@stat ||= Pork::Stat.new
end
|
.trap(sig = 'SIGINT') ⇒ Object
75
76
77
78
79
80
81
|
# File 'lib/pork.rb', line 75
def self.trap sig='SIGINT'
Signal.trap(sig) do
stat.report
puts "\nterminated by signal #{sig}"
exit 255
end
end
|