autotest 4.4.3 → 4.4.4
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/Readme.md +2 -0
- data/VERSION +1 -1
- data/autotest.gemspec +2 -2
- data/bin/autotest +4 -1
- data/lib/autotest.rb +13 -6
- data/test/test_autotest.rb +42 -1
- metadata +4 -4
data/Readme.md
CHANGED
@@ -8,6 +8,7 @@ Improvements over ZenTest
|
|
8
8
|
- `-r` use given config file
|
9
9
|
- `-p` use parallel_tests to run tests (Test::Unit only)
|
10
10
|
- `-s` use any style you want -> `alias autospec2="autotest --style rspec2"`
|
11
|
+
- `-b` use bundle exec to run tests
|
11
12
|
- simplified test setup
|
12
13
|
- simplified packaging
|
13
14
|
- less globals
|
@@ -38,6 +39,7 @@ Usage
|
|
38
39
|
-q, --quiet Be quiet.
|
39
40
|
-r, --rc CONFIG Path to config file. (Defaults to ~/.autotest or current_dir/.autotest)
|
40
41
|
-s, --style STYLE Which style to use, e.g. rspec, rspec2
|
42
|
+
-b, --bundle-exec Use bundle exec to run tests
|
41
43
|
-h, --help Show this.
|
42
44
|
|
43
45
|
Windows needs [diff.exe](http://gnuwin32.sourceforge.net/packages.html)
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
4.4.
|
1
|
+
4.4.4
|
data/autotest.gemspec
CHANGED
@@ -5,11 +5,11 @@
|
|
5
5
|
|
6
6
|
Gem::Specification.new do |s|
|
7
7
|
s.name = %q{autotest}
|
8
|
-
s.version = "4.4.
|
8
|
+
s.version = "4.4.4"
|
9
9
|
|
10
10
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
11
11
|
s.authors = ["Ryan Davis"]
|
12
|
-
s.date = %q{2010-11-
|
12
|
+
s.date = %q{2010-11-16}
|
13
13
|
s.executables = ["autotest", "unit_diff"]
|
14
14
|
s.files = [
|
15
15
|
".autotest",
|
data/bin/autotest
CHANGED
@@ -26,6 +26,9 @@ BANNER
|
|
26
26
|
opts.on("-s", "--style STYLE", "Which style to use, e.g. rspec, rspec2") do |style|
|
27
27
|
options[:style] = style
|
28
28
|
end
|
29
|
+
opts.on("-b", "--bundle-exec", "Use bundle exec to run tests") do
|
30
|
+
options[:bundle_exec] = true
|
31
|
+
end
|
29
32
|
opts.on("-h", "--help","Show this.") { puts opts;exit }
|
30
33
|
end.parse!
|
31
34
|
|
@@ -61,4 +64,4 @@ unless style.empty?
|
|
61
64
|
puts "style: #{style.map {|s| s.capitalize}.join}"
|
62
65
|
target = Autotest.const_get(style.map {|s| s.capitalize}.join)
|
63
66
|
end
|
64
|
-
target.run
|
67
|
+
target.run
|
data/lib/autotest.rb
CHANGED
@@ -183,7 +183,13 @@ class Autotest
|
|
183
183
|
self.find_directories = ['.']
|
184
184
|
self.unit_diff = "#{File.expand_path("#{File.dirname(__FILE__)}/../bin/unit_diff")} -u"
|
185
185
|
|
186
|
-
|
186
|
+
add_test_unit_mappings
|
187
|
+
|
188
|
+
#execute custom extensions
|
189
|
+
load_custom_extensions(options[:rc])
|
190
|
+
end
|
191
|
+
|
192
|
+
def add_test_unit_mappings
|
187
193
|
#file in /lib -> run test in /test
|
188
194
|
self.add_mapping(/^lib\/.*\.rb$/) do |filename, _|
|
189
195
|
possible = File.basename(filename).gsub '_', '_?'
|
@@ -194,9 +200,6 @@ class Autotest
|
|
194
200
|
self.add_mapping(/^test.*\/test_.*rb$/) do |filename, _|
|
195
201
|
filename
|
196
202
|
end
|
197
|
-
|
198
|
-
#execute custom extensions
|
199
|
-
load_custom_extensions(options[:rc])
|
200
203
|
end
|
201
204
|
|
202
205
|
def load_custom_extensions(config_file)
|
@@ -446,12 +449,12 @@ class Autotest
|
|
446
449
|
def make_test_cmd files_to_test
|
447
450
|
cmds = []
|
448
451
|
full, partial = reorder(files_to_test).partition { |k,v| v.empty? }
|
449
|
-
base_cmd = "#{ruby} -I#{libs} -rubygems"
|
452
|
+
base_cmd = "#{bundle_exec}#{ruby} -I#{libs} -rubygems"
|
450
453
|
|
451
454
|
unless full.empty? then
|
452
455
|
classes = full.map {|k,v| k}.flatten.uniq
|
453
456
|
if options[:parallel] and classes.size > 1
|
454
|
-
cmds << "parallel_test #{escape_filenames(classes).join(' ')}"
|
457
|
+
cmds << "#{bundle_exec}parallel_test #{escape_filenames(classes).join(' ')}"
|
455
458
|
else
|
456
459
|
classes.unshift testlib
|
457
460
|
cmds << "#{base_cmd} -e \"[#{escape_filenames(classes).join(', ')}].each { |f| require f }\" | #{unit_diff}"
|
@@ -466,6 +469,10 @@ class Autotest
|
|
466
469
|
cmds.join("#{SEP} ")
|
467
470
|
end
|
468
471
|
|
472
|
+
def bundle_exec
|
473
|
+
options[:bundle_exec] ? 'bundle exec ' : ''
|
474
|
+
end
|
475
|
+
|
469
476
|
def escape_filenames(classes)
|
470
477
|
classes.map{|klass| "'#{klass}'"}
|
471
478
|
end
|
data/test/test_autotest.rb
CHANGED
@@ -46,6 +46,8 @@ class TestAutotest < Test::Unit::TestCase
|
|
46
46
|
@a = klassname.split(/::/).inject(Object) { |k,n| k.const_get(n) }.new
|
47
47
|
@a.output = StringIO.new
|
48
48
|
@a.last_mtime = Time.at(2)
|
49
|
+
@a.options[:bundle_exec] = nil
|
50
|
+
@a.options[:parallel] = nil
|
49
51
|
|
50
52
|
@files = {}
|
51
53
|
@files[@impl] = Time.at(1)
|
@@ -359,7 +361,7 @@ test_error2(#{@test_class}):
|
|
359
361
|
assert @a.hook(:blah)
|
360
362
|
end
|
361
363
|
|
362
|
-
def
|
364
|
+
def test_make_test_cmd_basics
|
363
365
|
f = {
|
364
366
|
@test => [],
|
365
367
|
'test/test_fooby.rb' => [ 'test_something1', 'test_something2' ]
|
@@ -379,6 +381,45 @@ test_error2(#{@test_class}):
|
|
379
381
|
assert_equal expected, result
|
380
382
|
end
|
381
383
|
|
384
|
+
def test_make_test_cmd_uses_bundle_exec_when_given
|
385
|
+
@a.options[:bundle_exec] = true
|
386
|
+
f = {
|
387
|
+
@test => []
|
388
|
+
}
|
389
|
+
result = @a.make_test_cmd f
|
390
|
+
assert_match /^bundle exec \//,result
|
391
|
+
end
|
392
|
+
|
393
|
+
def test_make_test_cmd_uses_bundle_exec_with_parallel_test
|
394
|
+
@a.options[:bundle_exec] = true
|
395
|
+
@a.options[:parallel] = true
|
396
|
+
f = {
|
397
|
+
'test/a.rb' => [],
|
398
|
+
'test/b.rb' => []
|
399
|
+
}
|
400
|
+
result = @a.make_test_cmd f
|
401
|
+
assert_match /^bundle exec parallel_test/, result
|
402
|
+
end
|
403
|
+
|
404
|
+
def test_make_test_cmd_uses_parallel_with_multiple_files
|
405
|
+
@a.options[:parallel] = true
|
406
|
+
f = {
|
407
|
+
'test/a.rb' => [],
|
408
|
+
'test/b.rb' => []
|
409
|
+
}
|
410
|
+
result = @a.make_test_cmd f
|
411
|
+
assert_match /^parallel_test/, result
|
412
|
+
end
|
413
|
+
|
414
|
+
def test_make_test_cmd_does_not_use_parallel_for_single_file
|
415
|
+
@a.options[:parallel] = true
|
416
|
+
f = {
|
417
|
+
'test/a.rb' => []
|
418
|
+
}
|
419
|
+
result = @a.make_test_cmd f
|
420
|
+
assert_equal nil, (/^parallel_test/ =~ result)
|
421
|
+
end
|
422
|
+
|
382
423
|
def test_path_to_classname
|
383
424
|
# non-rails
|
384
425
|
util_path_to_classname 'TestBlah', 'test/test_blah.rb'
|
metadata
CHANGED
@@ -1,13 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: autotest
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
hash:
|
4
|
+
hash: 39
|
5
5
|
prerelease: false
|
6
6
|
segments:
|
7
7
|
- 4
|
8
8
|
- 4
|
9
|
-
-
|
10
|
-
version: 4.4.
|
9
|
+
- 4
|
10
|
+
version: 4.4.4
|
11
11
|
platform: ruby
|
12
12
|
authors:
|
13
13
|
- Ryan Davis
|
@@ -15,7 +15,7 @@ autorequire:
|
|
15
15
|
bindir: bin
|
16
16
|
cert_chain: []
|
17
17
|
|
18
|
-
date: 2010-11-
|
18
|
+
date: 2010-11-16 00:00:00 +01:00
|
19
19
|
default_executable:
|
20
20
|
dependencies: []
|
21
21
|
|