Module: Oktest
- Defined in:
- lib/oktest.rb
Defined Under Namespace
Modules: Color, SpecHelper, Util Classes: AssertionFailed, AssertionObject, BaseReporter, Config, Context, Filter, FixtureManager, FixtureNotFoundError, Item, LoopedDependencyError, MainApp, Node, OktestError, PlainReporter, QuietReporter, Reporter, Runner, ScopeNode, SimpleReporter, SkipException, SpecLeaf, TestGenerator, TodoException, TopicNode, Traverser, VerboseReporter, Visitor
Constant Summary collapse
- VERSION =
'$Release: 1.0.1 $'.split()[1]
- FAIL_EXCEPTION =
FAIL_EXCEPTION = (defined?(MiniTest) ? MiniTest::Assertion :
defined?(Test::Unit) ? Test::Unit::AssertionFailedError : AssertionFailed) AssertionFailed- SKIP_EXCEPTION =
SkipException- TODO_EXCEPTION =
TodoException- THE_GLOBAL_SCOPE =
ScopeNode.new(nil, __FILE__)
- STATUSES =
[:PASS, :FAIL, :ERROR, :SKIP, :TODO]
- RUNNER_CLASS =
Runner- THE_FIXTURE_MANAGER =
FixtureManager.new()
- REPORTER_CLASS =
VerboseReporter- REPORTER_CLASSES =
{ 'verbose' => VerboseReporter, 'v' => VerboseReporter, 'simple' => SimpleReporter, 's' => SimpleReporter, 'plain' => PlainReporter, 'p' => PlainReporter, 'quiet' => QuietReporter, 'q' => QuietReporter, }
- FILTER_CLASS =
Filter
Class Method Summary collapse
-
.__scope(scope, &block) ⇒ Object
:nodoc:.
-
.auto_run? ⇒ Boolean
:nodoc:.
- .filter(filter_obj) ⇒ Object
- .global_scope(&block) ⇒ Object
- .main(argv = nil) ⇒ Object
-
.on_exit ⇒ Object
:nodoc:.
- .run(reporter: nil, style: nil) ⇒ Object
- .scope(tag: nil, &block) ⇒ Object
Class Method Details
.__scope(scope, &block) ⇒ Object
:nodoc:
914 915 916 917 918 919 920 921 |
# File 'lib/oktest.rb', line 914 def self.__scope(scope, &block) #:nodoc: ! @_in_scope or raise OktestError, "scope() and global_scope() are not nestable." @_in_scope = true scope.run_block_in_context_class(&block) ensure @_in_scope = false end |
.auto_run? ⇒ Boolean
:nodoc:
2347 2348 2349 2350 2351 2352 2353 2354 2355 2356 |
# File 'lib/oktest.rb', line 2347 def self.auto_run?() # :nodoc: #; [!7vm4d] returns false if error raised when loading test scripts. #; [!oae85] returns true if exit() called. exc = $! return false if exc && !exc.is_a?(SystemExit) #; [!rg5aw] returns false if Oktest.scope() never been called. return false unless THE_GLOBAL_SCOPE.has_child? #; [!0j3ek] returns true if Config.auto_run is enabled. return Config.auto_run end |
.filter(filter_obj) ⇒ Object
1972 1973 1974 |
# File 'lib/oktest.rb', line 1972 def self.filter(filter_obj) filter_obj.filter_children!(THE_GLOBAL_SCOPE) end |
.global_scope(&block) ⇒ Object
885 886 887 888 889 890 891 |
# File 'lib/oktest.rb', line 885 def self.global_scope(&block) #; [!flnpc] run block in the THE_GLOBAL_SCOPE object. #; [!pe0g2] raises error when nested called. self.__scope(THE_GLOBAL_SCOPE, &block) #; [!fcmt2] not create new scope object. return THE_GLOBAL_SCOPE end |
.main(argv = nil) ⇒ Object
2338 2339 2340 2341 |
# File 'lib/oktest.rb', line 2338 def self.main(argv=nil) status = MainApp.main(argv) exit(status) end |
.on_exit ⇒ Object
:nodoc:
2343 2344 2345 |
# File 'lib/oktest.rb', line 2343 def self.on_exit() # :nodoc: Oktest.main() if self.auto_run?() end |
.run(reporter: nil, style: nil) ⇒ Object
1689 1690 1691 1692 1693 1694 1695 1696 1697 1698 1699 1700 1701 1702 1703 |
# File 'lib/oktest.rb', line 1689 def self.run(reporter: nil, style: nil) #; [!kfi8b] do nothing when 'Oktest.scope()' not called. return unless THE_GLOBAL_SCOPE.has_child? #; [!6xn3t] creates reporter object according to 'style:' keyword arg. klass = (style ? REPORTER_CLASSES[style] : REPORTER_CLASS) or raise ArgumentError, "#{style.inspect}: unknown style." reporter ||= klass.new #; [!mn451] run test cases. runner = RUNNER_CLASS.new(reporter) runner.start() ! THE_GLOBAL_SCOPE.has_child? or "** internal error" #; [!p52se] returns total number of failures and errors. counts = reporter.counts return counts[:FAIL] + counts[:ERROR] end |
.scope(tag: nil, &block) ⇒ Object
893 894 895 896 897 898 899 900 901 902 903 904 905 906 907 908 909 910 911 912 |
# File 'lib/oktest.rb', line 893 def self.scope(tag: nil, &block) #; [!kem4y] detects test script filename. location = caller(1).first # caller() makes performance slower, but necessary. filename = location =~ /:\d+/ ? $` : nil #; [!6ullm] changes test script filename from absolute path to relative path. if filename pwd = Dir.pwd() if filename.start_with?(pwd) filename = filename[pwd.length..-1].sub(/\A\//, '') elsif filename.start_with?('./') filename = filename[2..-1] end end #; [!vxoy1] creates new scope object. #; [!rsimc] adds scope object as child of THE_GLOBAL_SCOPE. scope = ScopeNode.new(THE_GLOBAL_SCOPE, filename, tag: tag) #; [!jmc4q] raises error when nested called. self.__scope(scope, &block) return scope end |