monkeytest-win32 0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/bin/monkeytest +26 -0
- data/lib/monkeytest.rb +76 -0
- data/lib/tasks/monkey.rake +53 -0
- metadata +72 -0
data/bin/monkeytest
ADDED
@@ -0,0 +1,26 @@
|
|
1
|
+
require 'fileutils'
|
2
|
+
include FileUtils
|
3
|
+
|
4
|
+
cwd = Dir.getwd
|
5
|
+
|
6
|
+
unless File.exist?("#{cwd}#{File::SEPARATOR}lib#{File::SEPARATOR}tasks")
|
7
|
+
puts "create lib/tasks"
|
8
|
+
Dir.mkdir("#{cwd}#{File::SEPARATOR}lib#{File::SEPARATOR}tasks")
|
9
|
+
else
|
10
|
+
puts "exists lib/tasks"
|
11
|
+
end
|
12
|
+
|
13
|
+
if File.exist?("#{cwd}#{File::SEPARATOR}lib#{File::SEPARATOR}tasks#{File::SEPARATOR}monkey.rake")
|
14
|
+
puts "replace lib/tasks/monkey.rake"
|
15
|
+
else
|
16
|
+
puts "create lib/tasks/monkey.rake"
|
17
|
+
end
|
18
|
+
|
19
|
+
begin
|
20
|
+
cp("#{File.dirname(__FILE__)}#{File::SEPARATOR}..#{File::SEPARATOR}lib#{File::SEPARATOR}tasks#{File::SEPARATOR}monkey.rake","#{cwd}#{File::SEPARATOR}lib#{File::SEPARATOR}tasks#{File::SEPARATOR}monkey.rake")
|
21
|
+
rescue Exception => e
|
22
|
+
puts "There was a problem copying the file!"
|
23
|
+
puts e
|
24
|
+
end
|
25
|
+
|
26
|
+
puts "All done!"
|
data/lib/monkeytest.rb
ADDED
@@ -0,0 +1,76 @@
|
|
1
|
+
|
2
|
+
module Monkey
|
3
|
+
|
4
|
+
PATTERN = /.+_test.rb/
|
5
|
+
DIRECTORIES = ['./test/unit/','./test/functional/','./test/integration/']
|
6
|
+
|
7
|
+
def self.run_tests(mode)
|
8
|
+
quiet = ((mode.to_s == "quiet") or (mode.to_s == "q"))
|
9
|
+
silent = ((mode.to_s == "silent") or (mode.to_s == "s"))
|
10
|
+
directories = DIRECTORIES.collect {|dir| File.expand_path(dir) }
|
11
|
+
failures = Array.new
|
12
|
+
totalTests = totalAsserts = totalErrors = totalFailures = 0
|
13
|
+
|
14
|
+
directories.each do |dir|
|
15
|
+
puts "#{dir.match(/\/([^\/]+)\/?$/)[1].upcase} TESTS:".bold
|
16
|
+
Dir.foreach(dir) do |file|
|
17
|
+
if file.match(PATTERN)
|
18
|
+
print " #{file.ljust(35)}"
|
19
|
+
|
20
|
+
fullResult = `ruby -C \"#{dir}\" \"#{dir}/#{file}\"`
|
21
|
+
|
22
|
+
result = fullResult.match(/([\d]+) tests, ([\d]+) assertions, ([\d]+) failures, ([\d]+) errors/) or break
|
23
|
+
numTests = result[1].to_i
|
24
|
+
numAsserts = result[2].to_i
|
25
|
+
numFailures = result[3].to_i
|
26
|
+
numErrors = result[4].to_i
|
27
|
+
|
28
|
+
totalTests += numTests
|
29
|
+
totalAsserts += numAsserts
|
30
|
+
totalErrors += numErrors
|
31
|
+
totalFailures += numFailures
|
32
|
+
|
33
|
+
print "#{numTests.to_s.rjust(4)} Tests "
|
34
|
+
print "#{numAsserts.to_s.rjust(4)} Assertions "
|
35
|
+
|
36
|
+
if numErrors > 0 then
|
37
|
+
puts "ERROR".red
|
38
|
+
failures.push fullResult
|
39
|
+
elsif numFailures > 0 then
|
40
|
+
puts "FAIL".yellow
|
41
|
+
failures.push fullResult
|
42
|
+
else
|
43
|
+
puts "PASS".green
|
44
|
+
end
|
45
|
+
end
|
46
|
+
end
|
47
|
+
end
|
48
|
+
puts '-'*80
|
49
|
+
print "TOTALS:".bold.ljust(38)
|
50
|
+
print "#{totalTests.to_s.rjust(4)} Tests "
|
51
|
+
print "#{totalAsserts.to_s.rjust(4)} Assertions "
|
52
|
+
print "#{(totalFailures+totalErrors).to_s.rjust(4)} Problem(s)\n"
|
53
|
+
if silent
|
54
|
+
puts "\n"
|
55
|
+
elsif quiet
|
56
|
+
puts "\n\nErrors & Failures:".bold unless failures.empty?
|
57
|
+
failures.each do |badthing|
|
58
|
+
while matches = badthing.match(/(Error|Failure):[\s]+(test_[^\()]+)\(([^\)]+)\)([\s]\[[^\]]+\/(.+?):([\d]+)\])?/m) do
|
59
|
+
msg = " #{matches[1].ljust(10).red}" if matches[1] == "Error"
|
60
|
+
msg = " #{matches[1].ljust(10).yellow}" if matches[1] == "Failure"
|
61
|
+
msg << " #{matches[3].underline} : #{matches[2]}"
|
62
|
+
msg << " (#{matches[5]}:#{matches[6]})" unless matches[6].nil?
|
63
|
+
puts msg
|
64
|
+
badthing = matches.post_match
|
65
|
+
end
|
66
|
+
end
|
67
|
+
puts "\n"
|
68
|
+
else
|
69
|
+
puts "\n\nErrors & Failures:".bold unless failures.empty?
|
70
|
+
failures.each do |badthing|
|
71
|
+
puts badthing
|
72
|
+
puts "\n"
|
73
|
+
end
|
74
|
+
end
|
75
|
+
end
|
76
|
+
end
|
@@ -0,0 +1,53 @@
|
|
1
|
+
# ===================================================
|
2
|
+
# A set of rake tasks for running monkey tests.
|
3
|
+
# ===================================================
|
4
|
+
|
5
|
+
begin
|
6
|
+
require 'rubygems'
|
7
|
+
rescue
|
8
|
+
puts "Please install ruby gems."
|
9
|
+
exit(1)
|
10
|
+
end
|
11
|
+
|
12
|
+
begin
|
13
|
+
require 'win32console'
|
14
|
+
include Win32::Console::ANSI
|
15
|
+
include Term::ANSIColor
|
16
|
+
rescue
|
17
|
+
puts "When running on Windows the win32console gem is required."
|
18
|
+
end unless system('ls > /dev/null 2> /dev/null')
|
19
|
+
|
20
|
+
begin
|
21
|
+
require 'color'
|
22
|
+
require 'monkeytest'
|
23
|
+
rescue Exception => e
|
24
|
+
puts "The monkeytest gem is required to perform this task,"
|
25
|
+
print "Would you like to install this gem now? [y/n]: "
|
26
|
+
answer = STDIN.gets
|
27
|
+
print "\n"
|
28
|
+
if answer.upcase[0].chr == 'Y'
|
29
|
+
unless system('gem install monkeytest -y')
|
30
|
+
puts "\nLet's try that again... this time with sudo!\n"
|
31
|
+
system('sudo gem install monkeytest -y')
|
32
|
+
end
|
33
|
+
puts "Everything should be in place, go ahead and give 'er another try."
|
34
|
+
end
|
35
|
+
exit(1)
|
36
|
+
end
|
37
|
+
|
38
|
+
namespace :test do
|
39
|
+
namespace :monkey do
|
40
|
+
desc "Outputs per-file summary only."
|
41
|
+
task :silent do
|
42
|
+
Monkey.run_tests(:silent)
|
43
|
+
end
|
44
|
+
desc "Outputs per-file summary as well as a method level summaries."
|
45
|
+
task :quiet do
|
46
|
+
Monkey.run_tests(:quiet)
|
47
|
+
end
|
48
|
+
end
|
49
|
+
desc "Outputs per-file summary as well as full failure messages."
|
50
|
+
task :monkey do
|
51
|
+
Monkey.run_tests(:normal)
|
52
|
+
end
|
53
|
+
end
|
metadata
ADDED
@@ -0,0 +1,72 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
rubygems_version: 0.8.11
|
3
|
+
specification_version: 1
|
4
|
+
name: monkeytest-win32
|
5
|
+
version: !ruby/object:Gem::Version
|
6
|
+
version: "0.1"
|
7
|
+
date: 2006-10-26 00:00:00 -04:00
|
8
|
+
summary: A set of rake tasks for pretty testing of rails apps.
|
9
|
+
require_paths:
|
10
|
+
- lib
|
11
|
+
email: geoffrey.parsons@gmail.com
|
12
|
+
homepage:
|
13
|
+
rubyforge_project:
|
14
|
+
description:
|
15
|
+
autorequire:
|
16
|
+
default_executable:
|
17
|
+
bindir: bin
|
18
|
+
has_rdoc: false
|
19
|
+
required_ruby_version: !ruby/object:Gem::Version::Requirement
|
20
|
+
requirements:
|
21
|
+
- - ">="
|
22
|
+
- !ruby/object:Gem::Version
|
23
|
+
version: 1.8.4
|
24
|
+
version:
|
25
|
+
platform: ruby
|
26
|
+
signing_key:
|
27
|
+
cert_chain:
|
28
|
+
authors:
|
29
|
+
- Marshall Huss
|
30
|
+
files:
|
31
|
+
- lib/tasks/monkey.rake
|
32
|
+
- lib/monkeytest.rb
|
33
|
+
test_files: []
|
34
|
+
|
35
|
+
rdoc_options: []
|
36
|
+
|
37
|
+
extra_rdoc_files: []
|
38
|
+
|
39
|
+
executables:
|
40
|
+
- monkeytest
|
41
|
+
extensions: []
|
42
|
+
|
43
|
+
requirements: []
|
44
|
+
|
45
|
+
dependencies:
|
46
|
+
- !ruby/object:Gem::Dependency
|
47
|
+
name: rake
|
48
|
+
version_requirement:
|
49
|
+
version_requirements: !ruby/object:Gem::Version::Requirement
|
50
|
+
requirements:
|
51
|
+
- - ">="
|
52
|
+
- !ruby/object:Gem::Version
|
53
|
+
version: 0.7.1
|
54
|
+
version:
|
55
|
+
- !ruby/object:Gem::Dependency
|
56
|
+
name: color
|
57
|
+
version_requirement:
|
58
|
+
version_requirements: !ruby/object:Gem::Version::Requirement
|
59
|
+
requirements:
|
60
|
+
- - ">="
|
61
|
+
- !ruby/object:Gem::Version
|
62
|
+
version: 0.1.0
|
63
|
+
version:
|
64
|
+
- !ruby/object:Gem::Dependency
|
65
|
+
name: win32console
|
66
|
+
version_requirement:
|
67
|
+
version_requirements: !ruby/object:Gem::Version::Requirement
|
68
|
+
requirements:
|
69
|
+
- - "="
|
70
|
+
- !ruby/object:Gem::Version
|
71
|
+
version: 1.0.8
|
72
|
+
version:
|