ZenTest 3.6.1 → 3.7.0
Sign up to get free protection for your applications and to get access to all the features.
- 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:
|