ZenTest 3.7.2 → 3.8.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 +19 -0
- data/Manifest.txt +3 -1
- data/Rakefile +12 -0
- data/articles/Article.css +721 -0
- data/articles/getting_started_with_autotest.html +532 -0
- data/{LinuxJournalArticle.txt → articles/how_to_use_zentest.txt} +0 -0
- data/bin/multiruby +7 -0
- data/example_dot_autotest.rb +2 -0
- data/lib/autotest.rb +203 -87
- data/lib/autotest/rails.rb +51 -43
- data/lib/zentest.rb +1 -1
- data/test/test_autotest.rb +93 -13
- metadata +6 -4
data/lib/autotest/rails.rb
CHANGED
@@ -4,54 +4,62 @@ class Autotest::Rails < Autotest
|
|
4
4
|
|
5
5
|
def initialize # :nodoc:
|
6
6
|
super
|
7
|
-
@exceptions = /^\.\/(?:db|doc|log|public|script|tmp|vendor\/rails)/
|
8
7
|
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
8
|
+
add_exception %r%^\./(?:db|doc|log|public|script|tmp|vendor)%
|
9
|
+
|
10
|
+
add_mapping %r%^test/fixtures/(.*)s.yml% do |_, m|
|
11
|
+
["test/unit/#{m[1]}_test.rb",
|
12
|
+
"test/controllers/#{m[1]}_controller_test.rb",
|
13
|
+
"test/views/#{m[1]}_view_test.rb",
|
14
|
+
"test/functional/#{m[1]}_controller_test.rb"]
|
15
|
+
end
|
16
|
+
|
17
|
+
add_mapping %r%^test/(unit|integration|controllers|views|functional)/.*rb$% do |filename, _|
|
18
|
+
filename
|
19
|
+
end
|
20
|
+
|
21
|
+
add_mapping %r%^app/models/(.*)\.rb$% do |_, m|
|
22
|
+
"test/unit/#{m[1]}_test.rb"
|
23
|
+
end
|
24
|
+
|
25
|
+
add_mapping %r%^app/helpers/application_helper.rb% do
|
26
|
+
files_matching %r%^test/(views|functional)/.*_test\.rb$%
|
27
|
+
end
|
28
|
+
|
29
|
+
add_mapping %r%^app/helpers/(.*)_helper.rb% do |_, m|
|
30
|
+
if m[1] == "application" then
|
23
31
|
files_matching %r%^test/(views|functional)/.*_test\.rb$%
|
24
|
-
|
25
|
-
%r%^app/helpers/(.*)_helper.rb% => proc { |_, m|
|
26
|
-
if m[1] == "application" then
|
27
|
-
files_matching %r%^test/(views|functional)/.*_test\.rb$%
|
28
|
-
else
|
29
|
-
["test/views/#{m[1]}_view_test.rb",
|
30
|
-
"test/functional/#{m[1]}_controller_test.rb"]
|
31
|
-
end
|
32
|
-
},
|
33
|
-
%r%^app/views/(.*)/% => proc { |_, m|
|
32
|
+
else
|
34
33
|
["test/views/#{m[1]}_view_test.rb",
|
35
34
|
"test/functional/#{m[1]}_controller_test.rb"]
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
"test/views/layouts_view_test.rb"
|
47
|
-
},
|
48
|
-
%r%^config/routes.rb$% => proc { # FIX:
|
35
|
+
end
|
36
|
+
end
|
37
|
+
|
38
|
+
add_mapping %r%^app/views/(.*)/% do |_, m|
|
39
|
+
["test/views/#{m[1]}_view_test.rb",
|
40
|
+
"test/functional/#{m[1]}_controller_test.rb"]
|
41
|
+
end
|
42
|
+
|
43
|
+
add_mapping %r%^app/controllers/(.*)\.rb$% do |_, m|
|
44
|
+
if m[1] == "application" then
|
49
45
|
files_matching %r%^test/(controllers|views|functional)/.*_test\.rb$%
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
46
|
+
else
|
47
|
+
["test/controllers/#{m[1]}_test.rb",
|
48
|
+
"test/functional/#{m[1]}_test.rb"]
|
49
|
+
end
|
50
|
+
end
|
51
|
+
|
52
|
+
add_mapping %r%^app/views/layouts/% do
|
53
|
+
"test/views/layouts_view_test.rb"
|
54
|
+
end
|
55
|
+
|
56
|
+
add_mapping %r%^config/routes.rb$% do # FIX:
|
57
|
+
files_matching %r%^test/(controllers|views|functional)/.*_test\.rb$%
|
58
|
+
end
|
59
|
+
|
60
|
+
add_mapping %r%^test/test_helper.rb|config/((boot|environment(s/test)?).rb|database.yml)% do
|
61
|
+
files_matching %r%^test/(unit|controllers|views|functional)/.*_test\.rb$%
|
62
|
+
end
|
55
63
|
end
|
56
64
|
|
57
65
|
# Given the string filename as the path, determine
|
data/lib/zentest.rb
CHANGED
data/test/test_autotest.rb
CHANGED
@@ -18,6 +18,8 @@ require 'autotest'
|
|
18
18
|
# run_tests
|
19
19
|
|
20
20
|
class Autotest
|
21
|
+
attr_reader :test_mappings, :exception_list
|
22
|
+
|
21
23
|
def self.clear_hooks
|
22
24
|
HOOKS.clear
|
23
25
|
end
|
@@ -46,6 +48,45 @@ class TestAutotest < Test::Unit::TestCase
|
|
46
48
|
@a.last_mtime = Time.at(2)
|
47
49
|
end
|
48
50
|
|
51
|
+
def test_add_exception
|
52
|
+
current = util_exceptions
|
53
|
+
@a.add_exception 'blah'
|
54
|
+
|
55
|
+
actual = util_exceptions
|
56
|
+
expect = current + ["blah"]
|
57
|
+
|
58
|
+
assert_equal expect, actual
|
59
|
+
end
|
60
|
+
|
61
|
+
def test_add_mapping
|
62
|
+
current = util_mappings
|
63
|
+
@a.add_mapping(/blah/) do 42 end
|
64
|
+
|
65
|
+
actual = util_mappings
|
66
|
+
expect = current + [/blah/]
|
67
|
+
|
68
|
+
assert_equal expect, actual
|
69
|
+
end
|
70
|
+
|
71
|
+
def test_clear_exceptions
|
72
|
+
test_add_exception
|
73
|
+
@a.clear_exceptions
|
74
|
+
|
75
|
+
actual = util_exceptions
|
76
|
+
expect = []
|
77
|
+
|
78
|
+
assert_equal expect, actual
|
79
|
+
end
|
80
|
+
|
81
|
+
def test_clear_mapping
|
82
|
+
@a.clear_mappings
|
83
|
+
|
84
|
+
actual = util_mappings
|
85
|
+
expect = []
|
86
|
+
|
87
|
+
assert_equal expect, actual
|
88
|
+
end
|
89
|
+
|
49
90
|
def test_consolidate_failures_experiment
|
50
91
|
@a.files.clear
|
51
92
|
@a.files[@impl] = Time.at(1)
|
@@ -72,14 +113,6 @@ class TestAutotest < Test::Unit::TestCase
|
|
72
113
|
assert_equal expected, @a.output.string
|
73
114
|
end
|
74
115
|
|
75
|
-
def test_consolidate_failures_no_match
|
76
|
-
result = @a.consolidate_failures([['test_blah1', @test_class], ['test_blah2', @test_class], ['test_blah1', 'TestUnknown']])
|
77
|
-
expected = {@test => ['test_blah1', 'test_blah2']}
|
78
|
-
assert_equal expected, result
|
79
|
-
expected = "Unable to map class TestUnknown to a file\n"
|
80
|
-
assert_equal expected, @a.output.string
|
81
|
-
end
|
82
|
-
|
83
116
|
def test_consolidate_failures_nested_classes
|
84
117
|
@a.files.clear
|
85
118
|
@a.files['lib/outer.rb'] = Time.at(5)
|
@@ -93,14 +126,32 @@ class TestAutotest < Test::Unit::TestCase
|
|
93
126
|
assert_equal expected, @a.output.string
|
94
127
|
end
|
95
128
|
|
129
|
+
def test_consolidate_failures_no_match
|
130
|
+
result = @a.consolidate_failures([['test_blah1', @test_class], ['test_blah2', @test_class], ['test_blah1', 'TestUnknown']])
|
131
|
+
expected = {@test => ['test_blah1', 'test_blah2']}
|
132
|
+
assert_equal expected, result
|
133
|
+
expected = "Unable to map class TestUnknown to a file\n"
|
134
|
+
assert_equal expected, @a.output.string
|
135
|
+
end
|
136
|
+
|
96
137
|
def test_consolidate_failures_red
|
97
138
|
result = @a.consolidate_failures([['test_blah1', @test_class], ['test_blah2', @test_class]])
|
98
139
|
expected = {@test => ['test_blah1', 'test_blah2']}
|
99
140
|
assert_equal expected, result
|
100
141
|
end
|
101
142
|
|
102
|
-
|
143
|
+
def test_exceptions
|
144
|
+
@a.clear_exceptions
|
145
|
+
test_add_exception
|
146
|
+
assert_equal(/blah/, @a.exceptions)
|
147
|
+
end
|
148
|
+
|
149
|
+
def test_exceptions_nil
|
150
|
+
@a.clear_exceptions
|
151
|
+
assert_nil @a.exceptions
|
152
|
+
end
|
103
153
|
|
154
|
+
# TODO: lots of filename edgecases for find_files_to_test
|
104
155
|
def test_find_files_to_test
|
105
156
|
@a.last_mtime = Time.at(0)
|
106
157
|
assert @a.find_files_to_test(@a.files)
|
@@ -261,10 +312,6 @@ test_error2(#{@test_class}):
|
|
261
312
|
assert_equal expected, result
|
262
313
|
end
|
263
314
|
|
264
|
-
def util_path_to_classname(e,i)
|
265
|
-
assert_equal e, @a.path_to_classname(i)
|
266
|
-
end
|
267
|
-
|
268
315
|
def test_path_to_classname
|
269
316
|
# non-rails
|
270
317
|
util_path_to_classname 'TestBlah', 'test/test_blah.rb'
|
@@ -272,6 +319,27 @@ test_error2(#{@test_class}):
|
|
272
319
|
util_path_to_classname 'TestRuby2Ruby', 'test/test_ruby2ruby.rb'
|
273
320
|
end
|
274
321
|
|
322
|
+
def test_remove_exception
|
323
|
+
test_add_exception
|
324
|
+
current = util_exceptions
|
325
|
+
@a.remove_exception 'blah'
|
326
|
+
|
327
|
+
actual = util_exceptions
|
328
|
+
expect = current - ["blah"]
|
329
|
+
|
330
|
+
assert_equal expect, actual
|
331
|
+
end
|
332
|
+
|
333
|
+
def test_remove_mapping
|
334
|
+
current = util_mappings
|
335
|
+
@a.remove_mapping(/^lib\/.*\.rb$/)
|
336
|
+
|
337
|
+
actual = util_mappings
|
338
|
+
expect = current - [/^lib\/.*\.rb$/]
|
339
|
+
|
340
|
+
assert_equal expect, actual
|
341
|
+
end
|
342
|
+
|
275
343
|
def test_tests_for_file
|
276
344
|
assert_equal [@test], @a.tests_for_file(@impl)
|
277
345
|
assert_equal [@test], @a.tests_for_file(@test)
|
@@ -282,6 +350,10 @@ test_error2(#{@test_class}):
|
|
282
350
|
assert_equal [], @a.tests_for_file('test_unknown.rb')
|
283
351
|
end
|
284
352
|
|
353
|
+
def util_exceptions
|
354
|
+
@a.exception_list.sort_by { |r| r.to_s }
|
355
|
+
end
|
356
|
+
|
285
357
|
def util_find_files_to_test(f, expected)
|
286
358
|
t = @a.last_mtime + 1
|
287
359
|
files = { f => t }
|
@@ -291,4 +363,12 @@ test_error2(#{@test_class}):
|
|
291
363
|
assert_equal t, @a.files[f]
|
292
364
|
assert_equal "", @a.output.string
|
293
365
|
end
|
366
|
+
|
367
|
+
def util_mappings
|
368
|
+
@a.test_mappings.keys.sort_by { |x| x.to_s }
|
369
|
+
end
|
370
|
+
|
371
|
+
def util_path_to_classname(e,i)
|
372
|
+
assert_equal e, @a.path_to_classname(i)
|
373
|
+
end
|
294
374
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: ZenTest
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 3.
|
4
|
+
version: 3.8.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Ryan Davis
|
@@ -10,7 +10,7 @@ autorequire:
|
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
12
|
|
13
|
-
date: 2008-01-
|
13
|
+
date: 2008-01-14 00:00:00 -08:00
|
14
14
|
default_executable:
|
15
15
|
dependencies:
|
16
16
|
- !ruby/object:Gem::Dependency
|
@@ -34,16 +34,18 @@ extensions: []
|
|
34
34
|
|
35
35
|
extra_rdoc_files:
|
36
36
|
- History.txt
|
37
|
-
- LinuxJournalArticle.txt
|
38
37
|
- Manifest.txt
|
39
38
|
- README.txt
|
39
|
+
- articles/how_to_use_zentest.txt
|
40
40
|
- example.txt
|
41
41
|
files:
|
42
42
|
- History.txt
|
43
|
-
- LinuxJournalArticle.txt
|
44
43
|
- Manifest.txt
|
45
44
|
- README.txt
|
46
45
|
- Rakefile
|
46
|
+
- articles/Article.css
|
47
|
+
- articles/getting_started_with_autotest.html
|
48
|
+
- articles/how_to_use_zentest.txt
|
47
49
|
- bin/autotest
|
48
50
|
- bin/multiruby
|
49
51
|
- bin/rails_test_audit
|