testrbl 0.1.15 → 0.1.16
Sign up to get free protection for your applications and to get access to all the features.
- data/Gemfile.lock +1 -1
- data/Rakefile +2 -2
- data/lib/testrbl/version.rb +1 -1
- data/lib/testrbl.rb +12 -4
- data/spec/testrbl_spec.rb +20 -0
- metadata +4 -4
data/Gemfile.lock
CHANGED
data/Rakefile
CHANGED
@@ -2,9 +2,9 @@ require 'bundler/setup'
|
|
2
2
|
require 'bundler/gem_tasks'
|
3
3
|
|
4
4
|
task :default do
|
5
|
-
# tests do not run with test-unit 1.x.x since it defines testrb and overshadows 1.9s native testrb
|
5
|
+
# tests do not run with test-unit 1.x.x or <=2.3 since it defines testrb and overshadows 1.9s native testrb
|
6
6
|
if `which testrb`.include?("/gems/")
|
7
|
-
raise "tests do not run with test-unit
|
7
|
+
raise "tests do not run with test-unit testrb installed\nyes | gem uninstall -a test-unit && bundle"
|
8
8
|
end
|
9
9
|
|
10
10
|
sh "rspec spec/"
|
data/lib/testrbl/version.rb
CHANGED
data/lib/testrbl.rb
CHANGED
@@ -19,13 +19,15 @@ module Testrbl
|
|
19
19
|
def self.run_from_cli(argv)
|
20
20
|
i_test, file, line = detect_usable(argv)
|
21
21
|
if file and line
|
22
|
-
file =
|
22
|
+
file = localize(file)
|
23
23
|
run "#{ruby} #{i_test}#{file} -n '/#{pattern_from_file(File.readlines(file), line)}/'"
|
24
24
|
elsif file
|
25
25
|
run "#{ruby} #{i_test}#{file}"
|
26
|
+
elsif argv.all?{|f| File.file?(f) }
|
27
|
+
run "#{ruby} #{argv.map{|f| "-r #{localize(f)}" }.join(" ")} -e ''"
|
26
28
|
else # pass though
|
27
29
|
# no bundle exec: projects with mini and unit-test do not run well via bundle exec testrb
|
28
|
-
run "testrb
|
30
|
+
run ["testrb"] + argv
|
29
31
|
end
|
30
32
|
end
|
31
33
|
|
@@ -55,6 +57,11 @@ module Testrbl
|
|
55
57
|
|
56
58
|
private
|
57
59
|
|
60
|
+
# fix 1.9 not being able to load local files
|
61
|
+
def self.localize(file)
|
62
|
+
file =~ /^[-a-z\d_]/ ? "./#{file}" : file
|
63
|
+
end
|
64
|
+
|
58
65
|
def self.detect_usable(argv)
|
59
66
|
argv = argv.dup # do not mess up args
|
60
67
|
i_test = "-Itest " if ((argv.delete("-I") and argv.delete("test")) or argv.delete("-Itest"))
|
@@ -77,9 +84,10 @@ module Testrbl
|
|
77
84
|
end
|
78
85
|
|
79
86
|
def self.run(command)
|
80
|
-
|
87
|
+
command = [*command]
|
88
|
+
puts command.join(" ")
|
81
89
|
STDOUT.flush # if exec fails horribly we at least see some output
|
82
|
-
exec command
|
90
|
+
Kernel.exec *command
|
83
91
|
end
|
84
92
|
|
85
93
|
def self.pattern_from_line(line)
|
data/spec/testrbl_spec.rb
CHANGED
@@ -368,6 +368,26 @@ describe Testrbl do
|
|
368
368
|
result.should include "CDE\n"
|
369
369
|
result.should include "DEF\n"
|
370
370
|
end
|
371
|
+
|
372
|
+
context "avoiding testrb" do
|
373
|
+
before do
|
374
|
+
write "backtrace_test.rb", <<-RUBY
|
375
|
+
puts caller
|
376
|
+
RUBY
|
377
|
+
end
|
378
|
+
|
379
|
+
it "does not run via testrb if possible" do
|
380
|
+
result = testrbl "a/b/c_test.rb backtrace_test.rb"
|
381
|
+
result.should include("CDE")
|
382
|
+
result.should_not include("bin/testrb:")
|
383
|
+
end
|
384
|
+
|
385
|
+
it "runs via testrb if not possible via ruby" do
|
386
|
+
result = testrbl "a/b/c_test.rb backtrace_test.rb -v"
|
387
|
+
result.should include("CDE")
|
388
|
+
result.should include("bin/testrb:")
|
389
|
+
end
|
390
|
+
end
|
371
391
|
end
|
372
392
|
|
373
393
|
describe ".pattern_from_file" do
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: testrbl
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.16
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2012-10-
|
12
|
+
date: 2012-10-23 00:00:00.000000000 Z
|
13
13
|
dependencies: []
|
14
14
|
description:
|
15
15
|
email: michael@grosser.it
|
@@ -44,7 +44,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
44
44
|
version: '0'
|
45
45
|
segments:
|
46
46
|
- 0
|
47
|
-
hash:
|
47
|
+
hash: 3813406408488973454
|
48
48
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
49
49
|
none: false
|
50
50
|
requirements:
|
@@ -53,7 +53,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
53
53
|
version: '0'
|
54
54
|
segments:
|
55
55
|
- 0
|
56
|
-
hash:
|
56
|
+
hash: 3813406408488973454
|
57
57
|
requirements: []
|
58
58
|
rubyforge_project:
|
59
59
|
rubygems_version: 1.8.24
|