ZenTest 3.6.1 → 3.7.0
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/History.txt +89 -0
- data/Manifest.txt +1 -4
- data/Rakefile +1 -1
- data/example.txt +2 -1
- data/lib/autotest.rb +27 -6
- data/lib/autotest/cctray.rb +57 -0
- data/lib/autotest/redgreen.rb +1 -1
- data/lib/autotest/screen.rb +1 -1
- data/lib/test/rails.rb +1 -0
- data/lib/test/rails/view_test_case.rb +1 -1
- data/lib/test/zentest_assertions.rb +12 -0
- data/lib/unit_diff.rb +1 -1
- data/lib/zentest.rb +38 -29
- data/lib/zentest_mapping.rb +3 -1
- data/test/test_autotest.rb +1 -0
- data/test/test_help.rb +1 -1
- data/test/test_rails_view_test_case.rb +11 -11
- data/test/test_zentest.rb +22 -2
- data/test/test_zentest_mapping.rb +2 -2
- metadata +61 -60
- data/bin/ruby_fork +0 -6
- data/bin/ruby_fork_client +0 -6
- data/lib/ruby_fork.rb +0 -178
- data/test/test_ruby_fork.rb +0 -172
@@ -0,0 +1,57 @@
|
|
1
|
+
# -*- ruby -*-
|
2
|
+
|
3
|
+
require 'fileutils'
|
4
|
+
|
5
|
+
module Autotest::CCTray
|
6
|
+
MAX = 30
|
7
|
+
STATUS = {
|
8
|
+
:all_good => "Success",
|
9
|
+
:green => "Success",
|
10
|
+
:red => "Failure",
|
11
|
+
}
|
12
|
+
DIR = File.expand_path("~/Sites/dashboard")
|
13
|
+
|
14
|
+
def self.project_name= name
|
15
|
+
@@project_name = name
|
16
|
+
end
|
17
|
+
|
18
|
+
def self.update_status status
|
19
|
+
dir = File.join(DIR, @@project_name)
|
20
|
+
serial = Time.now.to_i
|
21
|
+
file = "status.#{serial}.xml"
|
22
|
+
FileUtils.mkdir_p dir
|
23
|
+
Dir.chdir dir do
|
24
|
+
File.open(file, 'w') do |f|
|
25
|
+
f.puts %(<Project name="#{@@project_name}" activity="Sleeping" lastBuildStatus="#{STATUS[status]}" lastBuildLabel="build.#{serial}" lastBuildTime="#{Time.now.xmlschema}" webUrl="http://localhost/~ryan/dashboard/#{@@project_name}/"/>)
|
26
|
+
end
|
27
|
+
files = Dir["*.xml"].sort_by { |f| File.mtime f }.reverse
|
28
|
+
(files - files.first(MAX)).each do |f|
|
29
|
+
File.unlink f
|
30
|
+
end
|
31
|
+
end
|
32
|
+
|
33
|
+
Dir.chdir DIR do
|
34
|
+
new_file = "cctray.xml.#{$$}"
|
35
|
+
old_file = "cctray.xml"
|
36
|
+
File.open(from_file, "w") do |out|
|
37
|
+
out.puts "<Projects>"
|
38
|
+
Dir["*"].each do |d|
|
39
|
+
next unless File.directory? d
|
40
|
+
Dir.chdir d do
|
41
|
+
latest = Dir["*.xml"].sort_by { |f| File.mtime f }.last
|
42
|
+
out.puts File.read(latest)
|
43
|
+
end
|
44
|
+
end
|
45
|
+
out.puts "</Projects>"
|
46
|
+
end
|
47
|
+
File.rename new_file, old_file
|
48
|
+
end
|
49
|
+
end
|
50
|
+
|
51
|
+
[:run, :red, :green, :all_good].each do |status|
|
52
|
+
Autotest.add_hook status do |at|
|
53
|
+
STATUS[Time.now] = at.files_to_test.size
|
54
|
+
update_status status
|
55
|
+
end
|
56
|
+
end
|
57
|
+
end
|
data/lib/autotest/redgreen.rb
CHANGED
@@ -5,7 +5,7 @@ module Autotest::RedGreen
|
|
5
5
|
BAR = "=" * 80
|
6
6
|
|
7
7
|
Autotest.add_hook :ran_command do |at|
|
8
|
-
if at.results.last
|
8
|
+
if at.results.last =~ /^.* (\d+) failures, (\d+) errors$/
|
9
9
|
code = ($1 != "0" or $2 != "0") ? 31 : 32
|
10
10
|
puts "\e[#{code}m#{BAR}\e[0m\n\n"
|
11
11
|
end
|
data/lib/autotest/screen.rb
CHANGED
data/lib/test/rails.rb
CHANGED
@@ -3,6 +3,18 @@
|
|
3
3
|
|
4
4
|
module Test::Unit::Assertions
|
5
5
|
|
6
|
+
##
|
7
|
+
# TODO: should this go in this file?
|
8
|
+
# Asserts that model indeed has a given callback
|
9
|
+
#
|
10
|
+
# assert_callback(Model, :before_save, :something)
|
11
|
+
|
12
|
+
def assert_callback(model_class, callback, method_name, message=nil)
|
13
|
+
vars = model_class.instance_variable_get(:@inheritable_attributes)
|
14
|
+
assert vars.has_key?(callback), message
|
15
|
+
assert_include vars[callback], method_name, message
|
16
|
+
end
|
17
|
+
|
6
18
|
##
|
7
19
|
# Asserts that +obj+ responds to #empty? and #empty? returns true.
|
8
20
|
|
data/lib/unit_diff.rb
CHANGED
data/lib/zentest.rb
CHANGED
@@ -56,7 +56,7 @@ end
|
|
56
56
|
|
57
57
|
class ZenTest
|
58
58
|
|
59
|
-
VERSION = '3.
|
59
|
+
VERSION = '3.7.0'
|
60
60
|
|
61
61
|
include ZenTestMapping
|
62
62
|
|
@@ -128,21 +128,24 @@ class ZenTest
|
|
128
128
|
klass = self.get_class(klass) if klass.kind_of? String
|
129
129
|
|
130
130
|
# WTF? public_instance_methods: default vs true vs false = 3 answers
|
131
|
+
# to_s on all results if ruby >= 1.9
|
131
132
|
public_methods = klass.public_instance_methods(false)
|
132
|
-
klass_methods = klass.singleton_methods(full)
|
133
|
-
klass_methods -= Class.public_methods(true)
|
134
|
-
klass_methods -= %w(suite new)
|
135
|
-
klass_methods = klass_methods.map { |m| "self." + m }
|
136
|
-
public_methods += klass_methods
|
137
133
|
public_methods -= Kernel.methods unless full
|
134
|
+
public_methods.map! { |m| m.to_s }
|
138
135
|
public_methods -= %w(pretty_print pretty_print_cycle)
|
139
|
-
|
140
|
-
|
136
|
+
|
137
|
+
klass_methods = klass.singleton_methods(full)
|
138
|
+
klass_methods -= Class.public_methods(true)
|
139
|
+
klass_methods = klass_methods.map { |m| "self.#{m}" }
|
140
|
+
klass_methods -= %w(self.suite new)
|
141
|
+
|
142
|
+
result = {}
|
143
|
+
(public_methods + klass_methods).each do |meth|
|
141
144
|
puts "# found method #{meth}" if $DEBUG
|
142
|
-
|
145
|
+
result[meth] = true
|
143
146
|
end
|
144
147
|
|
145
|
-
return
|
148
|
+
return result
|
146
149
|
end
|
147
150
|
|
148
151
|
# Return the methods for class klass, as a hash with the
|
@@ -165,7 +168,7 @@ class ZenTest
|
|
165
168
|
end
|
166
169
|
|
167
170
|
the_methods.each do |meth|
|
168
|
-
klassmethods[meth] = true
|
171
|
+
klassmethods[meth.to_s] = true
|
169
172
|
end
|
170
173
|
end
|
171
174
|
end
|
@@ -326,14 +329,20 @@ class ZenTest
|
|
326
329
|
@missing_methods[klassname][methodname] = true
|
327
330
|
end
|
328
331
|
|
332
|
+
# looks up the methods and the corresponding test methods
|
333
|
+
# in the collection already built. To reduce duplication
|
334
|
+
# and hide implementation details.
|
335
|
+
def methods_and_tests(klassname, testklassname)
|
336
|
+
return @klasses[klassname], @test_klasses[testklassname]
|
337
|
+
end
|
338
|
+
|
329
339
|
# Checks, for the given class klassname, that each method
|
330
340
|
# has a corrsponding test method. If it doesn't this is
|
331
341
|
# added to the information for that class
|
332
342
|
def analyze_impl(klassname)
|
333
343
|
testklassname = self.convert_class_name(klassname)
|
334
344
|
if @test_klasses[testklassname] then
|
335
|
-
methods =
|
336
|
-
testmethods = @test_klasses[testklassname]
|
345
|
+
methods, testmethods = methods_and_tests(klassname,testklassname)
|
337
346
|
|
338
347
|
# check that each method has a test method
|
339
348
|
@klasses[klassname].each_key do | methodname |
|
@@ -371,8 +380,7 @@ class ZenTest
|
|
371
380
|
end
|
372
381
|
|
373
382
|
if @klasses[klassname] then
|
374
|
-
methods =
|
375
|
-
testmethods = @test_klasses[testklassname]
|
383
|
+
methods, testmethods = methods_and_tests(klassname,testklassname)
|
376
384
|
|
377
385
|
# check that each test method has a method
|
378
386
|
testmethods.each_key do | testmethodname |
|
@@ -414,6 +422,19 @@ class ZenTest
|
|
414
422
|
end # @klasses[klassname]
|
415
423
|
end
|
416
424
|
|
425
|
+
# create a given method at a given
|
426
|
+
# indentation. Returns an array containing
|
427
|
+
# the lines of the method.
|
428
|
+
def create_method(indentunit, indent, name)
|
429
|
+
meth = []
|
430
|
+
meth.push indentunit*indent + "def #{name}"
|
431
|
+
meth.last << "(*args)" unless name =~ /^test/
|
432
|
+
indent += 1
|
433
|
+
meth.push indentunit*indent + "raise NotImplementedError, 'Need to write #{name}'"
|
434
|
+
indent -= 1
|
435
|
+
meth.push indentunit*indent + "end"
|
436
|
+
return meth
|
437
|
+
end
|
417
438
|
|
418
439
|
# Walk each known class and test that each method has
|
419
440
|
# a test method
|
@@ -477,25 +498,13 @@ class ZenTest
|
|
477
498
|
meths = []
|
478
499
|
|
479
500
|
cls_methods.sort.each do |method|
|
480
|
-
meth =
|
481
|
-
meth.push indentunit*indent + "def #{method}"
|
482
|
-
meth.last << "(*args)" unless method =~ /^test/
|
483
|
-
indent += 1
|
484
|
-
meth.push indentunit*indent + "raise NotImplementedError, 'Need to write #{method}'"
|
485
|
-
indent -= 1
|
486
|
-
meth.push indentunit*indent + "end"
|
501
|
+
meth = create_method(indentunit, indent, method)
|
487
502
|
meths.push meth.join("\n")
|
488
503
|
end
|
489
504
|
|
490
505
|
methods.keys.sort.each do |method|
|
491
506
|
next if method =~ /pretty_print/
|
492
|
-
meth =
|
493
|
-
meth.push indentunit*indent + "def #{method}"
|
494
|
-
meth.last << "(*args)" unless method =~ /^test/
|
495
|
-
indent += 1
|
496
|
-
meth.push indentunit*indent + "raise NotImplementedError, 'Need to write #{method}'"
|
497
|
-
indent -= 1
|
498
|
-
meth.push indentunit*indent + "end"
|
507
|
+
meth = create_method(indentunit, indent, method)
|
499
508
|
meths.push meth.join("\n")
|
500
509
|
end
|
501
510
|
|
data/lib/zentest_mapping.rb
CHANGED
@@ -59,7 +59,7 @@ module ZenTestMapping
|
|
59
59
|
# taking into account names composed of metacharacters
|
60
60
|
# (used for arithmetic, etc
|
61
61
|
def normal_to_test(name)
|
62
|
-
name = name.dup # wtf?
|
62
|
+
name = name.to_s.dup # wtf?
|
63
63
|
is_cls_method = name.sub!(/^self\./, '')
|
64
64
|
name = @@method_map[name] if @@method_map.has_key? name
|
65
65
|
name = name.sub(/=$/, '_equals')
|
@@ -74,6 +74,8 @@ module ZenTestMapping
|
|
74
74
|
# symbolic names which may have been anglicised by
|
75
75
|
# #normal_to_test().
|
76
76
|
def test_to_normal(name, klassname=nil)
|
77
|
+
name = name.to_s
|
78
|
+
|
77
79
|
known_methods = (@inherited_methods[klassname] || {}).keys.sort.reverse
|
78
80
|
|
79
81
|
mapped_re = @@orig_method_map.values.sort_by { |k| k.length }.map {|s| Regexp.escape(s)}.reverse.join("|")
|
data/test/test_autotest.rb
CHANGED
@@ -269,6 +269,7 @@ test_error2(#{@test_class}):
|
|
269
269
|
# non-rails
|
270
270
|
util_path_to_classname 'TestBlah', 'test/test_blah.rb'
|
271
271
|
util_path_to_classname 'TestOuter::TestInner', 'test/outer/test_inner.rb'
|
272
|
+
util_path_to_classname 'TestRuby2Ruby', 'test/test_ruby2ruby.rb'
|
272
273
|
end
|
273
274
|
|
274
275
|
def test_tests_for_file
|
data/test/test_help.rb
CHANGED
@@ -2,7 +2,7 @@
|
|
2
2
|
module ActionController; end
|
3
3
|
module ActionController::Flash; end
|
4
4
|
class ActionController::Flash::FlashHash < Hash; end
|
5
|
-
class ActionController::TestSession; end
|
5
|
+
class ActionController::TestSession < Hash; end
|
6
6
|
|
7
7
|
class ActionController::TestRequest
|
8
8
|
attr_accessor :session
|
@@ -5,7 +5,7 @@ $TESTING_RTC = true
|
|
5
5
|
|
6
6
|
module Rails
|
7
7
|
module VERSION
|
8
|
-
STRING = '99.99.99'
|
8
|
+
STRING = '99.99.99' unless defined? STRING # HACK
|
9
9
|
end
|
10
10
|
end
|
11
11
|
|
@@ -165,10 +165,10 @@ class TestRailsViewTestCase < Test::Rails::ViewTestCase
|
|
165
165
|
|
166
166
|
assert_equal 2, @assert_select.length
|
167
167
|
|
168
|
-
|
169
|
-
|
170
|
-
|
171
|
-
|
168
|
+
assert_include ["select[name='game[location_id]'] option[value='2']",
|
169
|
+
{ :text => 'Guaymas' }], @assert_select
|
170
|
+
assert_include ["select[name='game[location_id]'] option[value='1']",
|
171
|
+
{ :text => 'Ballet' }], @assert_select
|
172
172
|
end
|
173
173
|
|
174
174
|
def test_assert_select_tag_form
|
@@ -177,12 +177,12 @@ class TestRailsViewTestCase < Test::Rails::ViewTestCase
|
|
177
177
|
|
178
178
|
assert_equal 4, @assert_select.length
|
179
179
|
|
180
|
-
|
181
|
-
|
182
|
-
|
183
|
-
|
184
|
-
|
185
|
-
|
180
|
+
assert_include ["form[action='/game/save']"], @assert_select
|
181
|
+
assert_include ["select[name='game[location_id]'] option[value='2']",
|
182
|
+
{ :text => 'Guaymas' }], @assert_select
|
183
|
+
assert_include ["form[action='/game/save']"], @assert_select
|
184
|
+
assert_include ["select[name='game[location_id]'] option[value='1']",
|
185
|
+
{ :text => 'Ballet' }], @assert_select
|
186
186
|
end
|
187
187
|
|
188
188
|
def test_assert_submit
|
data/test/test_zentest.rb
CHANGED
@@ -7,6 +7,10 @@ $TESTING = true
|
|
7
7
|
# I do this so I can still run ZenTest against the tests and itself...
|
8
8
|
require 'zentest' unless defined? $ZENTEST
|
9
9
|
|
10
|
+
class TrueClass # stupid YAML is breaking my tests. Enters via Test::Rails
|
11
|
+
remove_method :taguri, :taguri=, :to_yaml rescue nil
|
12
|
+
end
|
13
|
+
|
10
14
|
# These are just classes set up for quick testing.
|
11
15
|
# TODO: need to test a compound class name Mod::Cls
|
12
16
|
|
@@ -340,9 +344,24 @@ end
|
|
340
344
|
assert_equal(expected, missing)
|
341
345
|
end
|
342
346
|
|
347
|
+
def test_create_method
|
348
|
+
list = @tester.create_method(" ", 1, "wobble")
|
349
|
+
assert_equal([" def wobble(*args)",
|
350
|
+
" raise NotImplementedError, 'Need to write wobble'",
|
351
|
+
" end"],list)
|
352
|
+
end
|
353
|
+
|
354
|
+
def test_methods_and_tests
|
355
|
+
@tester.process_class("ZenTest")
|
356
|
+
@tester.process_class("TestZenTest")
|
357
|
+
m,t = @tester.methods_and_tests("ZenTest", "TestZenTest")
|
358
|
+
assert(m.include?("methods_and_tests"))
|
359
|
+
assert(t.include?("test_methods_and_tests"))
|
360
|
+
end
|
361
|
+
|
343
362
|
def test_generate_code_simple
|
344
363
|
self.util_simple_setup
|
345
|
-
|
364
|
+
|
346
365
|
@tester.analyze
|
347
366
|
str = @tester.generate_code[1..-1].join("\n")
|
348
367
|
exp = @generated_code
|
@@ -367,6 +386,7 @@ end
|
|
367
386
|
|
368
387
|
def test_get_inherited_methods_for_subclass_full
|
369
388
|
expect = Object.instance_methods + %w( inherited overridden )
|
389
|
+
expect.map! { |m| m.to_s }
|
370
390
|
result = @tester.get_inherited_methods_for("LowlyOne", true)
|
371
391
|
|
372
392
|
assert_equal(expect.sort, result.keys.sort)
|
@@ -380,7 +400,7 @@ end
|
|
380
400
|
end
|
381
401
|
|
382
402
|
def test_get_inherited_methods_for_superclass_full
|
383
|
-
expect = Object.instance_methods
|
403
|
+
expect = Object.instance_methods.map { |m| m.to_s }
|
384
404
|
result = @tester.get_inherited_methods_for("SuperDuper", true)
|
385
405
|
|
386
406
|
assert_equal(expect.sort, result.keys.sort)
|
@@ -5,9 +5,9 @@ $TESTING = true
|
|
5
5
|
# I do this so I can still run ZenTest against the tests and itself...
|
6
6
|
require 'zentest' unless defined? $ZENTEST
|
7
7
|
|
8
|
-
class
|
8
|
+
class TestZentestMapping < Test::Unit::TestCase
|
9
9
|
def setup
|
10
|
-
@tester = ZenTest.new
|
10
|
+
@tester = ZenTest.new
|
11
11
|
end
|
12
12
|
|
13
13
|
def util_simple_setup
|
metadata
CHANGED
@@ -1,34 +1,43 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
|
-
rubygems_version: 0.9.4
|
3
|
-
specification_version: 1
|
4
2
|
name: ZenTest
|
5
3
|
version: !ruby/object:Gem::Version
|
6
|
-
version: 3.
|
7
|
-
date: 2007-07-23 00:00:00 -07:00
|
8
|
-
summary: "ZenTest provides 4 different tools and 1 library: zentest, unit_diff, autotest, multiruby, and Test::Rails."
|
9
|
-
require_paths:
|
10
|
-
- lib
|
11
|
-
email: ryand-ruby@zenspider.com
|
12
|
-
homepage: http://www.zenspider.com/ZSS/Products/ZenTest/
|
13
|
-
rubyforge_project: zentest
|
14
|
-
description: "ZenTest provides 4 different tools and 1 library: zentest, unit_diff, autotest, multiruby, and Test::Rails. ZenTest scans your target and unit-test code and writes your missing code based on simple naming rules, enabling XP at a much quicker pace. ZenTest only works with Ruby and Test::Unit. unit_diff is a command-line filter to diff expected results from actual results and allow you to quickly see exactly what is wrong. autotest is a continous testing facility meant to be used during development. As soon as you save a file, autotest will run the corresponding dependent tests. multiruby runs anything you want on multiple versions of ruby. Great for compatibility checking! Test::Rails helps you build industrial-strength Rails code."
|
15
|
-
autorequire:
|
16
|
-
default_executable:
|
17
|
-
bindir: bin
|
18
|
-
has_rdoc: true
|
19
|
-
required_ruby_version: !ruby/object:Gem::Version::Requirement
|
20
|
-
requirements:
|
21
|
-
- - ">"
|
22
|
-
- !ruby/object:Gem::Version
|
23
|
-
version: 0.0.0
|
24
|
-
version:
|
4
|
+
version: 3.7.0
|
25
5
|
platform: ruby
|
26
|
-
signing_key:
|
27
|
-
cert_chain:
|
28
|
-
post_install_message:
|
29
6
|
authors:
|
30
7
|
- Ryan Davis
|
31
8
|
- Eric Hodel
|
9
|
+
autorequire:
|
10
|
+
bindir: bin
|
11
|
+
cert_chain: []
|
12
|
+
|
13
|
+
date: 2007-12-22 00:00:00 -08:00
|
14
|
+
default_executable:
|
15
|
+
dependencies:
|
16
|
+
- !ruby/object:Gem::Dependency
|
17
|
+
name: hoe
|
18
|
+
version_requirement:
|
19
|
+
version_requirements: !ruby/object:Gem::Requirement
|
20
|
+
requirements:
|
21
|
+
- - ">="
|
22
|
+
- !ruby/object:Gem::Version
|
23
|
+
version: 1.4.0
|
24
|
+
version:
|
25
|
+
description: "ZenTest provides 4 different tools and 1 library: zentest, unit_diff, autotest, multiruby, and Test::Rails. ZenTest scans your target and unit-test code and writes your missing code based on simple naming rules, enabling XP at a much quicker pace. ZenTest only works with Ruby and Test::Unit. unit_diff is a command-line filter to diff expected results from actual results and allow you to quickly see exactly what is wrong. autotest is a continous testing facility meant to be used during development. As soon as you save a file, autotest will run the corresponding dependent tests. multiruby runs anything you want on multiple versions of ruby. Great for compatibility checking! Test::Rails helps you build industrial-strength Rails code."
|
26
|
+
email: ryand-ruby@zenspider.com
|
27
|
+
executables:
|
28
|
+
- autotest
|
29
|
+
- multiruby
|
30
|
+
- rails_test_audit
|
31
|
+
- unit_diff
|
32
|
+
- zentest
|
33
|
+
extensions: []
|
34
|
+
|
35
|
+
extra_rdoc_files:
|
36
|
+
- History.txt
|
37
|
+
- LinuxJournalArticle.txt
|
38
|
+
- Manifest.txt
|
39
|
+
- README.txt
|
40
|
+
- example.txt
|
32
41
|
files:
|
33
42
|
- History.txt
|
34
43
|
- LinuxJournalArticle.txt
|
@@ -38,8 +47,6 @@ files:
|
|
38
47
|
- bin/autotest
|
39
48
|
- bin/multiruby
|
40
49
|
- bin/rails_test_audit
|
41
|
-
- bin/ruby_fork
|
42
|
-
- bin/ruby_fork_client
|
43
50
|
- bin/unit_diff
|
44
51
|
- bin/zentest
|
45
52
|
- example.txt
|
@@ -49,6 +56,7 @@ files:
|
|
49
56
|
- lib/autotest.rb
|
50
57
|
- lib/autotest/autoupdate.rb
|
51
58
|
- lib/autotest/camping.rb
|
59
|
+
- lib/autotest/cctray.rb
|
52
60
|
- lib/autotest/discover.rb
|
53
61
|
- lib/autotest/emacs.rb
|
54
62
|
- lib/autotest/fixtures.rb
|
@@ -67,7 +75,6 @@ files:
|
|
67
75
|
- lib/autotest/snarl.rb
|
68
76
|
- lib/autotest/timestamp.rb
|
69
77
|
- lib/functional_test_matrix.rb
|
70
|
-
- lib/ruby_fork.rb
|
71
78
|
- lib/test/rails.rb
|
72
79
|
- lib/test/rails/controller_test_case.rb
|
73
80
|
- lib/test/rails/functional_test_case.rb
|
@@ -88,11 +95,37 @@ files:
|
|
88
95
|
- test/test_rails_controller_test_case.rb
|
89
96
|
- test/test_rails_helper_test_case.rb
|
90
97
|
- test/test_rails_view_test_case.rb
|
91
|
-
- test/test_ruby_fork.rb
|
92
98
|
- test/test_unit_diff.rb
|
93
99
|
- test/test_zentest.rb
|
94
100
|
- test/test_zentest_assertions.rb
|
95
101
|
- test/test_zentest_mapping.rb
|
102
|
+
has_rdoc: true
|
103
|
+
homepage: http://www.zenspider.com/ZSS/Products/ZenTest/
|
104
|
+
post_install_message:
|
105
|
+
rdoc_options:
|
106
|
+
- --main
|
107
|
+
- README.txt
|
108
|
+
require_paths:
|
109
|
+
- lib
|
110
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
111
|
+
requirements:
|
112
|
+
- - ">="
|
113
|
+
- !ruby/object:Gem::Version
|
114
|
+
version: "0"
|
115
|
+
version:
|
116
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
117
|
+
requirements:
|
118
|
+
- - ">="
|
119
|
+
- !ruby/object:Gem::Version
|
120
|
+
version: "0"
|
121
|
+
version:
|
122
|
+
requirements: []
|
123
|
+
|
124
|
+
rubyforge_project: zentest
|
125
|
+
rubygems_version: 1.0.1
|
126
|
+
signing_key:
|
127
|
+
specification_version: 2
|
128
|
+
summary: "ZenTest provides 4 different tools and 1 library: zentest, unit_diff, autotest, multiruby, and Test::Rails."
|
96
129
|
test_files:
|
97
130
|
- test/test_autotest.rb
|
98
131
|
- test/test_help.rb
|
@@ -100,39 +133,7 @@ test_files:
|
|
100
133
|
- test/test_rails_controller_test_case.rb
|
101
134
|
- test/test_rails_helper_test_case.rb
|
102
135
|
- test/test_rails_view_test_case.rb
|
103
|
-
- test/test_ruby_fork.rb
|
104
136
|
- test/test_unit_diff.rb
|
105
137
|
- test/test_zentest.rb
|
106
138
|
- test/test_zentest_assertions.rb
|
107
139
|
- test/test_zentest_mapping.rb
|
108
|
-
rdoc_options:
|
109
|
-
- --main
|
110
|
-
- README.txt
|
111
|
-
extra_rdoc_files:
|
112
|
-
- History.txt
|
113
|
-
- LinuxJournalArticle.txt
|
114
|
-
- Manifest.txt
|
115
|
-
- README.txt
|
116
|
-
- example.txt
|
117
|
-
executables:
|
118
|
-
- autotest
|
119
|
-
- multiruby
|
120
|
-
- rails_test_audit
|
121
|
-
- ruby_fork
|
122
|
-
- ruby_fork_client
|
123
|
-
- unit_diff
|
124
|
-
- zentest
|
125
|
-
extensions: []
|
126
|
-
|
127
|
-
requirements: []
|
128
|
-
|
129
|
-
dependencies:
|
130
|
-
- !ruby/object:Gem::Dependency
|
131
|
-
name: hoe
|
132
|
-
version_requirement:
|
133
|
-
version_requirements: !ruby/object:Gem::Version::Requirement
|
134
|
-
requirements:
|
135
|
-
- - ">="
|
136
|
-
- !ruby/object:Gem::Version
|
137
|
-
version: 1.2.2
|
138
|
-
version:
|