Class: Buildr::TestFramework::TestResult::RSpecResultHandler

Inherits:
Object
  • Object
show all
Defined in:
lib/buildr/java/test_result.rb

Overview

A JtestR ResultHandler Using this handler we can use RSpec formatters, like html/ci_reporter with JtestR Created for YamlFormatter

Defined Under Namespace

Modules: ExampleMethods, TestNGResultHandlerMixin Classes: BacktraceTweaker

Class Attribute Summary collapse

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(name, desc, *args) ⇒ RSpecResultHandler

Returns a new instance of RSpecResultHandler.



188
189
190
191
192
193
194
195
196
197
198
# File 'lib/buildr/java/test_result.rb', line 188

def initialize(name, desc, *args)
  self.example_group = ::Spec::Example::ExampleGroup.new(desc)
  example_group.extend ExampleMethods
  example_group.name = name.to_s
  if example_group.name[/Spec/]
    example_group.description = desc.to_s
  else
    example_group.description = name.to_s
  end
  reporter.add_example_group(example_group)
end

Class Attribute Details

.reporterObject (readonly)

an rspec reporter used to proxy events to rspec formatters



158
159
160
# File 'lib/buildr/java/test_result.rb', line 158

def reporter
  @reporter
end

Instance Attribute Details

#current_exampleObject

Returns the value of attribute current_example.



186
187
188
# File 'lib/buildr/java/test_result.rb', line 186

def current_example
  @current_example
end

#current_failureObject

Returns the value of attribute current_failure.



186
187
188
# File 'lib/buildr/java/test_result.rb', line 186

def current_failure
  @current_failure
end

#example_groupObject

Returns the value of attribute example_group.



186
187
188
# File 'lib/buildr/java/test_result.rb', line 186

def example_group
  @example_group
end

Class Method Details

.afterObject



172
173
174
175
# File 'lib/buildr/java/test_result.rb', line 172

def after
  reporter.end
  reporter.dump
end

.beforeObject



168
169
170
# File 'lib/buildr/java/test_result.rb', line 168

def before
  reporter.start(reporter.options.files.size)
end

.init(argv = [], out = STDOUT, err = STDERR) ⇒ Object



160
161
162
163
164
165
166
# File 'lib/buildr/java/test_result.rb', line 160

def init(argv = [], out = STDOUT, err = STDERR)
  ::JtestR::TestNGResultHandler.module_eval { include TestNGResultHandlerMixin }
  rspec_parser = ::Spec::Runner::OptionParser.new(err, out)
  rspec_parser.order!(argv)
  rspec_parser.options.backtrace_tweaker = BacktraceTweaker.new
  @reporter = Spec::Runner::Reporter.new(rspec_parser.options)
end

Instance Method Details

#add_fault(fault) ⇒ Object



206
207
208
# File 'lib/buildr/java/test_result.rb', line 206

def add_fault(fault)
  self.current_failure = fault
end

#add_pending(pending) ⇒ Object



210
211
# File 'lib/buildr/java/test_result.rb', line 210

def add_pending(pending)
end

#endingObject



203
204
# File 'lib/buildr/java/test_result.rb', line 203

def ending
end

#error_single(name = nil) ⇒ Object



241
242
243
244
# File 'lib/buildr/java/test_result.rb', line 241

def error_single(name = nil)
  #puts "ERR SINGLE #{name}"
  reporter.example_finished(current_example, current_error)
end

#fail_single(name = nil) ⇒ Object



236
237
238
239
# File 'lib/buildr/java/test_result.rb', line 236

def fail_single(name = nil)
  #puts "FAIL SINGLE #{name}"
  reporter.example_finished(current_example, current_error)
end

#pending_single(name = nil) ⇒ Object



246
247
248
249
250
# File 'lib/buildr/java/test_result.rb', line 246

def pending_single(name = nil)
  #puts "PEND SINGLE #{name}"
  error = ::Spec::Example::ExamplePendingError.new(name)
  reporter.example_finished(current_example, error)
end

#reporterObject



182
183
184
# File 'lib/buildr/java/test_result.rb', line 182

def reporter
  self.class.reporter
end

#startingObject



200
201
# File 'lib/buildr/java/test_result.rb', line 200

def starting
end

#starting_single(name = nil) ⇒ Object



213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
# File 'lib/buildr/java/test_result.rb', line 213

def starting_single(name = nil)
  self.current_failure = nil
  self.current_example = Object.new
  current_example.extend ::Spec::Example::ExampleMethods
  current_example.extend ExampleMethods
  name = name.to_s
  name[/\((pen?ding|error|failure|success)\)?$/]
  name = $`
  current_example.description = name
  if example_group.name[/Spec/]
    current_example.__full_description = "#{example_group.description} #{name}"
  else
    current_example.__full_description = "#{example_group.name}: #{name}"
  end
  reporter.example_started(current_example)
  #puts "STARTED #{name} #{current_example.__full_description}"
end

#succeed_single(name = nil) ⇒ Object



231
232
233
234
# File 'lib/buildr/java/test_result.rb', line 231

def succeed_single(name = nil)
  #puts "SUCC SINGLE #{name}"
  reporter.example_finished(current_example, nil)
end