Top Level Namespace
Defined Under Namespace
Modules: Erubis, Gem, Kernel, Language, Merb, ObjectSpace Classes: Class, Dictionary, Hash, Mash, Object, REXMLUtilityNode, String, ToHashParser
Instance Method Summary collapse
-
#run_specs(globs, spec_cmd = 'spec') ⇒ Object
Runs specs in all files matching the file pattern.
Instance Method Details
#run_specs(globs, spec_cmd = 'spec') ⇒ Object
Runs specs in all files matching the file pattern.
Parameters
- globs<String, Array>
-
File patterns to look for.
- spec_cmd<~to_s>
-
The spec command. Defaults to “spec”.
8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 |
# File 'lib/merb-core/test/run_specs.rb', line 8 def run_specs(globs, spec_cmd='spec') require "optparse" require "spec" globs = globs.is_a?(Array) ? globs : [globs] examples, failures, errors, pending = 0, 0, 0, 0 globs.each do |glob| Dir[glob].each do |spec| response = Open3.popen3("#{spec_cmd} #{File.(spec)} -f s -c") do |i,o,e| while out = o.gets STDOUT.puts out STDOUT.flush if out =~ /\d+ example/ e, f, p = out.match(/(\d+) examples?, (\d+) failures?(?:, (\d+) pending?)?/)[1..-1] examples += e.to_i; failures += f.to_i; pending += p.to_i end end errors += 1 if e.is_a?(IO) STDOUT.puts e.read if e.is_a?(IO) end end end puts puts "*** TOTALS ***" if failures == 0 print "\e[32m" else print "\e[31m" end puts "#{examples} examples, #{failures} failures, #{errors} errors, #{pending} pending" print "\e[0m" end |