class Betatest::Runnable
Represents anything “runnable”, like Test
, Spec
, Benchmark
, or whatever you can dream up.
Subclasses of this are automatically registered and available in Runnable.runnables
.
Attributes
Number of assertions executed in this run.
An assertion raised during the run, if any.
Public Class Methods
Returns all instance methods matching the pattern re
.
# File lib/betatest.rb, line 266 def self.methods_matching re public_instance_methods(true).grep(re).map(&:to_s) end
Responsible for running all runnable methods in a given class, each in its own instance. Each instance is passed to the reporter to record.
# File lib/betatest.rb, line 281 def self.run reporter, options = {} filter = options[:filter] || '/./' filter = Regexp.new $1 if filter =~ /\/(.*)\// filtered_methods = self.runnable_methods.find_all { |m| filter === m || filter === "#{self}##{m}" } with_info_handler reporter do filtered_methods.each do |method_name| run_one_method self, method_name, reporter end end end
# File lib/betatest.rb, line 296 def self.run_one_method klass, method_name, reporter reporter.record Betatest.run_one_method(klass, method_name) end
Each subclass of Runnable
is responsible for overriding this method to return all runnable methods. See methods_matching.
# File lib/betatest.rb, line 330 def self.runnable_methods raise NotImplementedError, "subclass responsibility" end
Returns all subclasses of Runnable
.
# File lib/betatest.rb, line 337 def self.runnables @@runnables end
Public Instance Methods
Name of the run.
# File lib/betatest.rb, line 247 def name @NAME end
Set the name of the run.
# File lib/betatest.rb, line 254 def name= o @NAME = o end
Did this run pass?
Note: skipped runs are not considered passing, but they don't cause the process to exit non-zero.
# File lib/betatest.rb, line 372 def passed? raise NotImplementedError, "subclass responsibility" end
Returns a single character string to print based on the result of the run. Eg “.”, “F”, or “E”.
# File lib/betatest.rb, line 380 def result_code raise NotImplementedError, "subclass responsibility" end
Runs a single method. Needs to return self.
# File lib/betatest.rb, line 362 def run raise NotImplementedError, "subclass responsibility" end
Was this run skipped? See passed?
for more information.
# File lib/betatest.rb, line 387 def skipped? raise NotImplementedError, "subclass responsibility" end