testrbl 0.3.1 → 0.3.2
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/Gemfile.lock +1 -1
- data/Readme.md +1 -0
- data/lib/testrbl/version.rb +1 -1
- data/lib/testrbl.rb +7 -0
- data/spec/testrbl_spec.rb +49 -0
- metadata +4 -4
data/Gemfile.lock
CHANGED
data/Readme.md
CHANGED
@@ -11,6 +11,7 @@ Usage
|
|
11
11
|
testrbl test/unit/xxx_test.rb:123 # test by line number
|
12
12
|
testrbl test/unit # everything _test.rb in a folder (on 1.8 this would be test/unit/*)
|
13
13
|
testrbl xxx_test.rb yyy_test.rb # multiple files
|
14
|
+
testrbl --changed # run changed tests
|
14
15
|
|
15
16
|
Tips
|
16
17
|
====
|
data/lib/testrbl/version.rb
CHANGED
data/lib/testrbl.rb
CHANGED
@@ -12,6 +12,7 @@ module Testrbl
|
|
12
12
|
|
13
13
|
def self.run_from_cli(argv)
|
14
14
|
files, options = partition_argv(argv)
|
15
|
+
files.concat(changed_files) if options.delete("--changed")
|
15
16
|
files = files.map { |f| localize(f) }
|
16
17
|
load_options, options = partition_options(options)
|
17
18
|
|
@@ -96,6 +97,12 @@ module Testrbl
|
|
96
97
|
end
|
97
98
|
end
|
98
99
|
|
100
|
+
def self.changed_files
|
101
|
+
changed_files = `git status -s`.split("\n").map { |l| l.strip.split(/\s+/, 2)[1] }
|
102
|
+
raise "Failed: #{changed_files}" unless $?.success?
|
103
|
+
changed_files.select { |f| f =~ /_(test|spec)\.rb$/ && File.exist?(f) }
|
104
|
+
end
|
105
|
+
|
99
106
|
def self.ruby
|
100
107
|
if File.file?("Gemfile")
|
101
108
|
["ruby", "-rbundler/setup"] # faster then bundle exec ruby
|
data/spec/testrbl_spec.rb
CHANGED
@@ -440,6 +440,55 @@ describe Testrbl do
|
|
440
440
|
end
|
441
441
|
end
|
442
442
|
|
443
|
+
context "--changed" do
|
444
|
+
before do
|
445
|
+
write "test/a_test.rb", "puts 'ABC'"
|
446
|
+
write "test/b_test.rb", "puts 'BCD'"
|
447
|
+
write "foo.rb", "raise 'BCD'"
|
448
|
+
run %{git init && git add -A && git commit -am 'initial'}
|
449
|
+
end
|
450
|
+
|
451
|
+
it "can run with other stuff" do
|
452
|
+
write "bar.rb", "puts 'CDE'"
|
453
|
+
result = testrbl("bar.rb --changed")
|
454
|
+
result.should include "CDE"
|
455
|
+
result.should_not include "ABC"
|
456
|
+
end
|
457
|
+
|
458
|
+
it "runs new files" do
|
459
|
+
write "test/b_test.rb", "puts 'CDE'"
|
460
|
+
write "test/c_test.rb", "puts 'DEF'"
|
461
|
+
result = testrbl("--changed")
|
462
|
+
result.should include "CDE"
|
463
|
+
result.should include "DEF"
|
464
|
+
result.should_not include "ABC"
|
465
|
+
result.should_not include "BCD"
|
466
|
+
end
|
467
|
+
|
468
|
+
it "runs changed files" do
|
469
|
+
write "test/b_test.rb", "puts 'BCD' # changed"
|
470
|
+
result = testrbl("--changed")
|
471
|
+
result.should include "BCD"
|
472
|
+
result.should_not include "ABC"
|
473
|
+
end
|
474
|
+
|
475
|
+
it "runs staged files" do
|
476
|
+
write "test/b_test.rb", "puts 'BCD' # changed"
|
477
|
+
run "git add test/b_test.rb"
|
478
|
+
result = testrbl("--changed")
|
479
|
+
result.should include "BCD"
|
480
|
+
result.should_not include "ABC"
|
481
|
+
end
|
482
|
+
|
483
|
+
it "does not run removed files" do
|
484
|
+
run "rm test/b_test.rb"
|
485
|
+
write "test/c_test.rb", "puts 'DEF'"
|
486
|
+
result = testrbl("--changed")
|
487
|
+
result.should include "DEF"
|
488
|
+
result.should_not include "ABC"
|
489
|
+
end
|
490
|
+
end
|
491
|
+
|
443
492
|
describe ".test_pattern_from_file" do
|
444
493
|
def call(content, line)
|
445
494
|
lines = content.split("\n").map{|l| l + "\n" }
|
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.3.
|
4
|
+
version: 0.3.2
|
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: 2013-06-
|
12
|
+
date: 2013-06-30 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: -3635273838218329948
|
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: -3635273838218329948
|
57
57
|
requirements: []
|
58
58
|
rubyforge_project:
|
59
59
|
rubygems_version: 1.8.25
|