tork 15.1.0 → 16.0.0
Sign up to get free protection for your applications and to get access to all the features.
- data/Gemfile +0 -2
- data/HISTORY.markdown +21 -1
- data/README.markdown +29 -46
- data/bin/tork +4 -4
- data/bin/tork-driver +2 -2
- data/bin/tork-herald +2 -2
- data/bin/tork-master +4 -4
- data/lib/tork/config.rb +31 -22
- data/lib/tork/config/cucumber.rb +5 -5
- data/lib/tork/config/rails.rb +5 -5
- data/lib/tork/driver.rb +7 -15
- data/lib/tork/master.rb +3 -3
- data/lib/tork/version.rb +1 -1
- data/man/man1/tork-driver.1 +1 -1
- data/man/man1/tork-herald.1 +1 -1
- data/man/man1/tork-master.1 +3 -3
- data/man/man1/tork.1 +1 -1
- data/tork.gemspec +3 -2
- metadata +30 -16
data/Gemfile
CHANGED
data/HISTORY.markdown
CHANGED
@@ -1,10 +1,30 @@
|
|
1
|
+
------------------------------------------------------------------------------
|
2
|
+
Version 16.0.0 (2012-01-25)
|
3
|
+
------------------------------------------------------------------------------
|
4
|
+
|
5
|
+
Breaking changes:
|
6
|
+
|
7
|
+
* Drop the `Tork::Config.test_name_extractor` configuration option.
|
8
|
+
|
9
|
+
* Pass line numbers instead of test names to before/after fork hooks.
|
10
|
+
|
11
|
+
* Pass $~ (MatchData) to `Tork::Config::test_file_globbers` functions.
|
12
|
+
|
13
|
+
New features:
|
14
|
+
|
15
|
+
* tork/config/cucumber: only run changed scenarios in changed features.
|
16
|
+
|
17
|
+
Housekeeping:
|
18
|
+
|
19
|
+
* README: update instructions on running Tork directly from Git clone.
|
20
|
+
|
1
21
|
------------------------------------------------------------------------------
|
2
22
|
Version 15.1.0 (2012-01-25)
|
3
23
|
------------------------------------------------------------------------------
|
4
24
|
|
5
25
|
New features:
|
6
26
|
|
7
|
-
* GH-19: add
|
27
|
+
* GH-19: add `tork cucumber` for running cucumber features.
|
8
28
|
|
9
29
|
Bug fixes:
|
10
30
|
|
data/README.markdown
CHANGED
@@ -39,7 +39,7 @@ Features
|
|
39
39
|
|
40
40
|
* You can override the modular `tork*` programs with your own in $PATH.
|
41
41
|
|
42
|
-
*
|
42
|
+
* Its core is written in less than 360 lines (SLOC) of pure Ruby code! :-)
|
43
43
|
|
44
44
|
------------------------------------------------------------------------------
|
45
45
|
Architecture
|
@@ -64,9 +64,11 @@ diff and regexps) and then attempts to run just those. To make it run *all*
|
|
64
64
|
tests in your saved file, simply save the file *again* without changing it.
|
65
65
|
|
66
66
|
------------------------------------------------------------------------------
|
67
|
-
|
67
|
+
Starting off
|
68
68
|
------------------------------------------------------------------------------
|
69
69
|
|
70
|
+
### Prerequisites
|
71
|
+
|
70
72
|
* Ruby 1.8.7 or 1.9.2 or newer.
|
71
73
|
|
72
74
|
* Operating system that supports POSIX signals and the `fork()` system call.
|
@@ -78,43 +80,28 @@ Prerequisites
|
|
78
80
|
|
79
81
|
* To make the `tork-herald` program's filesystem monitoring more efficient:
|
80
82
|
|
81
|
-
gem install rb-inotify
|
82
|
-
gem install rb-fsevent
|
83
|
+
gem install rb-inotify # linux
|
84
|
+
gem install rb-fsevent # macosx
|
83
85
|
|
84
|
-
|
85
|
-
Installation
|
86
|
-
------------------------------------------------------------------------------
|
87
|
-
|
88
|
-
As a Ruby gem:
|
86
|
+
### Installation
|
89
87
|
|
90
88
|
gem install tork
|
91
89
|
|
92
|
-
|
93
|
-
|
94
|
-
git clone git://github.com/sunaku/tork
|
95
|
-
cd tork
|
96
|
-
bundle install
|
97
|
-
bundle exec rake install
|
98
|
-
|
99
|
-
------------------------------------------------------------------------------
|
100
|
-
Invocation
|
101
|
-
------------------------------------------------------------------------------
|
102
|
-
|
103
|
-
If installed as a Ruby gem:
|
90
|
+
### Invocation
|
104
91
|
|
105
92
|
tork --help
|
106
93
|
|
107
|
-
|
108
|
-
|
109
|
-
PATH=bin:$PATH bundle exec tork --help
|
110
|
-
|
111
|
-
You can monitor your test processes in another terminal:
|
94
|
+
### Monitoring
|
112
95
|
|
113
96
|
watch 'ps xuw | sed -n "1p; /tor[k]/p" | fgrep -v sed'
|
114
97
|
|
115
|
-
|
98
|
+
### Development
|
116
99
|
|
117
|
-
|
100
|
+
git clone git://github.com/sunaku/tork
|
101
|
+
cd tork
|
102
|
+
bundle install --binstubs=bundle_bin
|
103
|
+
bundle_bin/tork --help # run it directly
|
104
|
+
bundle exec rake -T # packaging tasks
|
118
105
|
|
119
106
|
------------------------------------------------------------------------------
|
120
107
|
Configuration
|
@@ -153,10 +140,12 @@ your Ruby application.
|
|
153
140
|
### Tork::Config.test_file_globbers
|
154
141
|
|
155
142
|
Hash that maps (1) a regular expression describing a set of file paths to (2)
|
156
|
-
a lambda function
|
157
|
-
|
158
|
-
|
159
|
-
|
143
|
+
a lambda function that accepts the path to a changed file and a `MatchData`
|
144
|
+
object containing the results of the regular expression matching, and yields a
|
145
|
+
file globbing pattern that describes a set of test files that need to be run.
|
146
|
+
|
147
|
+
In other words, whenever the source files (the regular expression) change,
|
148
|
+
their associated test files (result of calling the lambda function) are run.
|
160
149
|
|
161
150
|
For example, if test files had the same names as their source files followed
|
162
151
|
by an underscore and the file name in reverse like this:
|
@@ -166,7 +155,7 @@ by an underscore and the file name in reverse like this:
|
|
166
155
|
|
167
156
|
Then you would add the following to your configuration file:
|
168
157
|
|
169
|
-
Tork::Config.test_file_globbers[%r<^(lib|app)/.+\.rb$>] = lambda do |path|
|
158
|
+
Tork::Config.test_file_globbers[%r<^(lib|app)/.+\.rb$>] = lambda do |path, matches|
|
170
159
|
name = File.basename(path, '.rb')
|
171
160
|
"{test,spec}/**/#{name}_#{name.reverse}.rb"
|
172
161
|
end
|
@@ -175,18 +164,12 @@ In addition, these lambda functions can return `nil` if they do not wish for a
|
|
175
164
|
particular source file to be tested. For example, to ignore tests for all
|
176
165
|
source files except those within a `models/` directory, you would write:
|
177
166
|
|
178
|
-
Tork::Config.test_file_globbers[%r<^(lib|app)/.+\.rb$>] = lambda do |path|
|
167
|
+
Tork::Config.test_file_globbers[%r<^(lib|app)/.+\.rb$>] = lambda do |path, matches|
|
179
168
|
if path.include? '/models/'
|
180
169
|
"{test,spec}/**/#{File.basename(path)}"
|
181
170
|
end
|
182
171
|
end
|
183
172
|
|
184
|
-
### Tork::Config.test_name_extractor
|
185
|
-
|
186
|
-
Lambda function that is given a line of source code to determine whether it
|
187
|
-
can be considered as a test definition. In which case, the function must
|
188
|
-
extract and return the name of the test being defined.
|
189
|
-
|
190
173
|
### Tork::Config.before_fork_hooks
|
191
174
|
|
192
175
|
Array of lambda functions that are executed inside `tork-master` before a
|
@@ -203,12 +186,12 @@ worker process is forked to run a test file. These functions are given:
|
|
203
186
|
|
204
187
|
For example, to see some real values:
|
205
188
|
|
206
|
-
Tork::Config.before_fork_hooks << lambda do |worker_number, log_file, test_file,
|
189
|
+
Tork::Config.before_fork_hooks << lambda do |worker_number, log_file, test_file, line_numbers|
|
207
190
|
p :before_fork_hooks => {
|
208
191
|
:worker_number => worker_number,
|
209
192
|
:log_file => log_file,
|
210
193
|
:test_file => test_file,
|
211
|
-
:
|
194
|
+
:line_numbers => line_numbers,
|
212
195
|
}
|
213
196
|
end
|
214
197
|
|
@@ -228,19 +211,19 @@ by `tork-master`. These functions are given:
|
|
228
211
|
|
229
212
|
For example, to see some real values, including the worker process' PID:
|
230
213
|
|
231
|
-
Tork::Config.after_fork_hooks << lambda do |worker_number, log_file, test_file,
|
214
|
+
Tork::Config.after_fork_hooks << lambda do |worker_number, log_file, test_file, line_numbers|
|
232
215
|
p :after_fork_hooks => {
|
233
216
|
:worker_pid => $$,
|
234
217
|
:worker_number => worker_number,
|
235
218
|
:log_file => log_file,
|
236
219
|
:test_file => test_file,
|
237
|
-
:
|
220
|
+
:line_numbers => line_numbers,
|
238
221
|
}
|
239
222
|
end
|
240
223
|
|
241
224
|
The first function in this array instructs Test::Unit and RSpec to only run
|
242
|
-
those tests that
|
243
|
-
|
225
|
+
those tests that are defined on the given line numbers. This accelerates your
|
226
|
+
test-driven development cycle by only running tests you are currently editing.
|
244
227
|
|
245
228
|
------------------------------------------------------------------------------
|
246
229
|
Configuration helpers
|
data/bin/tork
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
#!/usr/bin/env ruby
|
2
2
|
=begin
|
3
3
|
|
4
|
-
TORK 1 2012-01-25
|
4
|
+
TORK 1 2012-01-25 16.0.0
|
5
5
|
==============================================================================
|
6
6
|
|
7
7
|
NAME
|
@@ -36,7 +36,7 @@ tork(1), tork-driver(1), tork-master(1), tork-herald(1)
|
|
36
36
|
|
37
37
|
=end =========================================================================
|
38
38
|
|
39
|
-
$0 = File.basename(__FILE__) # for easier
|
39
|
+
$0 = File.basename(__FILE__) # for easier identification in ps(1) output
|
40
40
|
|
41
41
|
require 'binman'
|
42
42
|
BinMan.help
|
@@ -59,8 +59,8 @@ warn 'tork: Absorbing test execution overhead...'
|
|
59
59
|
when :load then warn 'tork: Overhead absorbed. Ready for testing!'
|
60
60
|
when :over then warn 'tork: Reabsorbing changed overhead files...'
|
61
61
|
else
|
62
|
-
test_file,
|
63
|
-
message = [evstr.upcase, test_file,
|
62
|
+
test_file, line_numbers, *details = details
|
63
|
+
message = [evstr.upcase, test_file, line_numbers.inspect, details].join(' ')
|
64
64
|
|
65
65
|
color = case event
|
66
66
|
when :pass then "\e[34m%s\e[0m" # blue
|
data/bin/tork-driver
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
#!/usr/bin/env ruby
|
2
2
|
=begin
|
3
3
|
|
4
|
-
TORK-DRIVER 1 2012-01-25
|
4
|
+
TORK-DRIVER 1 2012-01-25 16.0.0
|
5
5
|
==============================================================================
|
6
6
|
|
7
7
|
NAME
|
@@ -75,7 +75,7 @@ tork(1), tork-driver(1), tork-master(1), tork-herald(1)
|
|
75
75
|
|
76
76
|
=end =========================================================================
|
77
77
|
|
78
|
-
$0 = File.basename(__FILE__) # for easier
|
78
|
+
$0 = File.basename(__FILE__) # for easier identification in ps(1) output
|
79
79
|
|
80
80
|
require 'binman'
|
81
81
|
BinMan.help
|
data/bin/tork-herald
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
#!/usr/bin/env ruby
|
2
2
|
=begin
|
3
3
|
|
4
|
-
TORK-HERALD 1 2012-01-25
|
4
|
+
TORK-HERALD 1 2012-01-25 16.0.0
|
5
5
|
==============================================================================
|
6
6
|
|
7
7
|
NAME
|
@@ -33,7 +33,7 @@ tork(1), tork-driver(1), tork-master(1), tork-herald(1)
|
|
33
33
|
|
34
34
|
=end =========================================================================
|
35
35
|
|
36
|
-
$0 = File.basename(__FILE__) # for easier
|
36
|
+
$0 = File.basename(__FILE__) # for easier identification in ps(1) output
|
37
37
|
|
38
38
|
require 'binman'
|
39
39
|
BinMan.help
|
data/bin/tork-master
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
#!/usr/bin/env ruby
|
2
2
|
=begin
|
3
3
|
|
4
|
-
TORK-MASTER 1 2012-01-25
|
4
|
+
TORK-MASTER 1 2012-01-25 16.0.0
|
5
5
|
==============================================================================
|
6
6
|
|
7
7
|
NAME
|
@@ -25,10 +25,10 @@ standard input stream and performs the respective actions as described below.
|
|
25
25
|
of *files* after removing their ".rb" file extension if present, and prints
|
26
26
|
the given command line to the standard output stream.
|
27
27
|
|
28
|
-
`["test",` *test_file*`,` *
|
28
|
+
`["test",` *test_file*`,` *line_numbers*`]`
|
29
29
|
Runs the given *test_file* in a forked child process while instructing your
|
30
30
|
chosen unit testing framework (loaded by your test execution overhead) to
|
31
|
-
only run those tests that are
|
31
|
+
only run those tests that are defined on the given array of *line_numbers*.
|
32
32
|
|
33
33
|
Prints the given command line to the standard output stream immediately
|
34
34
|
after forking the child process.
|
@@ -75,7 +75,7 @@ tork(1), tork-driver(1), tork-master(1), tork-herald(1)
|
|
75
75
|
|
76
76
|
=end =========================================================================
|
77
77
|
|
78
|
-
$0 = File.basename(__FILE__) # for easier
|
78
|
+
$0 = File.basename(__FILE__) # for easier identification in ps(1) output
|
79
79
|
|
80
80
|
require 'binman'
|
81
81
|
BinMan.help
|
data/lib/tork/config.rb
CHANGED
@@ -28,38 +28,47 @@ module Tork
|
|
28
28
|
|
29
29
|
Config.test_file_globbers = {
|
30
30
|
# source files that correspond to test files
|
31
|
-
%r<^lib/.+\.rb$> => lambda do |path|
|
31
|
+
%r<^lib/.+\.rb$> => lambda do |path, matches|
|
32
32
|
base = File.basename(path, '.rb')
|
33
33
|
"{test,spec}/**/#{base}_{test,spec}.rb"
|
34
34
|
end,
|
35
35
|
|
36
36
|
# the actual test files themselves
|
37
|
-
%r<^(test|spec)/.+_\1\.rb$> => lambda {|path| path }
|
37
|
+
%r<^(test|spec)/.+_\1\.rb$> => lambda {|path, matches| path }
|
38
38
|
}
|
39
39
|
|
40
|
-
Config.test_name_extractor = lambda do |line|
|
41
|
-
case line
|
42
|
-
when /^\s*def\s+test_(\w+)/ then $1
|
43
|
-
when /^\s*(test|context|should|describe|it)\b.+?(['"])(.*?)\2/ then $3
|
44
|
-
end
|
45
|
-
end
|
46
|
-
|
47
40
|
Config.before_fork_hooks = []
|
48
41
|
|
49
42
|
Config.after_fork_hooks = [
|
50
|
-
#
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
-
|
62
|
-
|
43
|
+
# instruct the testing framework to only run those
|
44
|
+
# tests that are defined on the given line numbers
|
45
|
+
lambda do |worker_number, log_file, test_file, line_numbers|
|
46
|
+
case File.basename(test_file)
|
47
|
+
when /(\b|_)spec(\b|_).*\.rb$/ # RSpec
|
48
|
+
line_numbers.each {|line| ARGV.push '--line_number', line.to_s }
|
49
|
+
|
50
|
+
when /(\b|_)test(\b|_).*\.rb$/ # Test::Unit
|
51
|
+
# find which tests have changed inside the test file
|
52
|
+
test_file_lines = File.readlines(test_file)
|
53
|
+
test_names = line_numbers.map do |line|
|
54
|
+
catch :found do
|
55
|
+
# search backwards from the line that changed up to
|
56
|
+
# the first line in the file for test definitions
|
57
|
+
line.downto(0) do |i|
|
58
|
+
test_name =
|
59
|
+
case test_file_lines[i]
|
60
|
+
when /^\s*def\s+test_(\w+)/ then $1
|
61
|
+
when /^\s*(test|context|should|describe|it)\b.+?(['"])(.*?)\2/
|
62
|
+
# elide string interpolation and invalid method name characters
|
63
|
+
$3.gsub(/\#\{.*?\}/, ' ').strip.gsub(/\W+/, '.*')
|
64
|
+
end \
|
65
|
+
and throw :found, test_name
|
66
|
+
end; nil # prevent unsuccessful search from returning an integer
|
67
|
+
end
|
68
|
+
end.compact.uniq
|
69
|
+
|
70
|
+
unless test_names.empty?
|
71
|
+
ARGV.push '--name', "/(?i:#{test_names.join('|')})/"
|
63
72
|
end
|
64
73
|
end
|
65
74
|
end
|
data/lib/tork/config/cucumber.rb
CHANGED
@@ -4,17 +4,17 @@ Tork::Config.all_test_file_globs << 'features/**/*.feature'
|
|
4
4
|
|
5
5
|
Tork::Config.test_file_globbers.update(
|
6
6
|
# source files that correspond to test files
|
7
|
-
%r<^features/(.+/)?step_definitions/.+\.rb$> => lambda do |path|
|
8
|
-
|
7
|
+
%r<^(features/(.+/)?)step_definitions/.+\.rb$> => lambda do |path, matches|
|
8
|
+
matches[1] + '*.feature'
|
9
9
|
end,
|
10
10
|
|
11
11
|
# the actual test files themselves
|
12
|
-
%r<^features/.+\.feature$> => lambda {|path| path }
|
12
|
+
%r<^features/.+\.feature$> => lambda {|path, matches| path }
|
13
13
|
)
|
14
14
|
|
15
|
-
Tork::Config.after_fork_hooks << lambda do |worker_number, log_file, test_file,
|
15
|
+
Tork::Config.after_fork_hooks << lambda do |worker_number, log_file, test_file, line_numbers|
|
16
16
|
# pass test_file in ARGV to cucumber(1) for running
|
17
|
-
ARGV << test_file.
|
17
|
+
ARGV << [test_file, *line_numbers].join(':')
|
18
18
|
require 'cucumber'
|
19
19
|
require 'rubygems'
|
20
20
|
cucumber_bin = Gem.bin_path('cucumber', 'cucumber')
|
data/lib/tork/config/rails.rb
CHANGED
@@ -7,19 +7,19 @@ Tork::Config.reabsorb_file_greps.push(
|
|
7
7
|
%r<^Gemfile\.lock$>
|
8
8
|
)
|
9
9
|
|
10
|
-
Tork::Config.test_file_globbers
|
11
|
-
lambda do |path|
|
10
|
+
Tork::Config.test_file_globbers.update(
|
11
|
+
%r<^(app|lib|test|spec)/.+\.rb$> => lambda do |path, matches|
|
12
12
|
base = File.basename(path, '.rb')
|
13
13
|
poly = ActiveSupport::Inflector.pluralize(base)
|
14
14
|
"{test,spec}/**/{#{base},#{poly}_*}_{test,spec}.rb"
|
15
|
-
end
|
15
|
+
end,
|
16
16
|
|
17
|
-
|
18
|
-
lambda do |path|
|
17
|
+
%r<^(test|spec)/factories/.+_factory\.rb$> => lambda do |path, matches|
|
19
18
|
base = File.basename(path, '_factory.rb')
|
20
19
|
poly = ActiveSupport::Inflector.pluralize(base)
|
21
20
|
"{test,spec}/**/{#{base},#{poly}_*}_{test,spec}.rb"
|
22
21
|
end
|
22
|
+
)
|
23
23
|
|
24
24
|
Tork::Config.after_fork_hooks << proc do
|
25
25
|
if defined? ActiveRecord::Base and
|
data/lib/tork/driver.rb
CHANGED
@@ -69,7 +69,7 @@ module Driver
|
|
69
69
|
|
70
70
|
# find and run the tests that correspond to the changed file
|
71
71
|
Config.test_file_globbers.each do |regexp, globber|
|
72
|
-
if regexp =~ changed_file and glob = globber.call(changed_file)
|
72
|
+
if regexp =~ changed_file and glob = globber.call(changed_file, $~)
|
73
73
|
run_test_files Dir[glob]
|
74
74
|
end
|
75
75
|
end
|
@@ -106,30 +106,22 @@ private
|
|
106
106
|
def run_test_file file
|
107
107
|
if File.exist? file and not @waiting_test_files.include? file
|
108
108
|
@waiting_test_files.push file
|
109
|
-
@master.send [:test, file,
|
109
|
+
@master.send [:test, file, find_changed_line_numbers(file)]
|
110
110
|
end
|
111
111
|
end
|
112
112
|
|
113
113
|
@lines_by_file = {}
|
114
114
|
|
115
|
-
def
|
115
|
+
def find_changed_line_numbers test_file
|
116
116
|
# cache the contents of the test file for diffing below
|
117
117
|
new_lines = File.readlines(test_file)
|
118
118
|
old_lines = @lines_by_file[test_file] || new_lines
|
119
119
|
@lines_by_file[test_file] = new_lines
|
120
120
|
|
121
|
-
# find which
|
122
|
-
Diff::LCS.diff(old_lines, new_lines).flatten.
|
123
|
-
|
124
|
-
|
125
|
-
# the first line in the file for test definitions
|
126
|
-
change.position.downto(0) do |i|
|
127
|
-
if test_name = Config.test_name_extractor.call(new_lines[i])
|
128
|
-
throw :found, test_name
|
129
|
-
end
|
130
|
-
end; nil # prevent unsuccessful search from returning an integer
|
131
|
-
end
|
132
|
-
end.compact.uniq
|
121
|
+
# find which line numbers have changed inside the test file
|
122
|
+
Diff::LCS.diff(old_lines, new_lines).flatten.
|
123
|
+
# +1 because line numbers start at 1, not 0
|
124
|
+
map {|change| change.position + 1 }.uniq
|
133
125
|
end
|
134
126
|
|
135
127
|
end
|
data/lib/tork/master.rb
CHANGED
@@ -20,7 +20,7 @@ module Master
|
|
20
20
|
@client.print @command_line
|
21
21
|
end
|
22
22
|
|
23
|
-
def test test_file,
|
23
|
+
def test test_file, line_numbers
|
24
24
|
# throttle forking rate to meet the maximum concurrent workers limit
|
25
25
|
sleep 1 until @command_by_worker_pid.size < Config.max_forked_workers
|
26
26
|
|
@@ -28,7 +28,7 @@ module Master
|
|
28
28
|
worker_number = @worker_number_pool.shift
|
29
29
|
|
30
30
|
Config.before_fork_hooks.each do |hook|
|
31
|
-
hook.call worker_number, log_file, test_file,
|
31
|
+
hook.call worker_number, log_file, test_file, line_numbers
|
32
32
|
end
|
33
33
|
|
34
34
|
worker_pid = fork do
|
@@ -46,7 +46,7 @@ module Master
|
|
46
46
|
STDERR.reopen(STDOUT.reopen(log_file, 'w')).sync = true
|
47
47
|
|
48
48
|
Config.after_fork_hooks.each do |hook|
|
49
|
-
hook.call worker_number, log_file, test_file,
|
49
|
+
hook.call worker_number, log_file, test_file, line_numbers
|
50
50
|
end
|
51
51
|
|
52
52
|
# after loading the user's test file, the at_exit() hook of the user's
|
data/lib/tork/version.rb
CHANGED
data/man/man1/tork-driver.1
CHANGED
data/man/man1/tork-herald.1
CHANGED
data/man/man1/tork-master.1
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
.TH TORK\-MASTER 1 2012\-01\-25
|
1
|
+
.TH TORK\-MASTER 1 2012\-01\-25 16.0.0
|
2
2
|
.SH NAME
|
3
3
|
.PP
|
4
4
|
tork\-master \- absorbs overhead and runs tests
|
@@ -15,10 +15,10 @@ Adds the given array of \fIpaths\fP to Ruby's $LOAD_PATH, loads the given array
|
|
15
15
|
of \fIfiles\fP after removing their ".rb" file extension if present, and prints
|
16
16
|
the given command line to the standard output stream.
|
17
17
|
.TP
|
18
|
-
\fB\fC["test",\fR \fItest_file\fP\fB\fC,\fR \
|
18
|
+
\fB\fC["test",\fR \fItest_file\fP\fB\fC,\fR \fIline_numbers\fP\fB\fC]\fR
|
19
19
|
Runs the given \fItest_file\fP in a forked child process while instructing your
|
20
20
|
chosen unit testing framework (loaded by your test execution overhead) to
|
21
|
-
only run those tests that are
|
21
|
+
only run those tests that are defined on the given array of \fIline_numbers\fP.
|
22
22
|
.IP
|
23
23
|
Prints the given command line to the standard output stream immediately
|
24
24
|
after forking the child process.
|
data/man/man1/tork.1
CHANGED
data/tork.gemspec
CHANGED
@@ -8,8 +8,8 @@ Gem::Specification.new do |s|
|
|
8
8
|
s.authors,
|
9
9
|
s.email = File.read('LICENSE').scan(/Copyright \d+ (.+) <(.+?)>/).transpose
|
10
10
|
s.homepage = "http://github.com/sunaku/tork"
|
11
|
-
s.summary = "
|
12
|
-
s.description =
|
11
|
+
s.summary = "Test with fork."
|
12
|
+
s.description = "Continuous testing tool for Ruby."
|
13
13
|
|
14
14
|
s.files = `git ls-files`.split("\n") + Dir["man/**/*"]
|
15
15
|
s.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
|
@@ -21,4 +21,5 @@ Gem::Specification.new do |s|
|
|
21
21
|
s.add_runtime_dependency 'guard', '>= 0.9.0', '< 1'
|
22
22
|
s.add_runtime_dependency 'diff-lcs', '>= 1.1.2', '< 2'
|
23
23
|
s.add_development_dependency 'md2man', '~> 1'
|
24
|
+
s.add_development_dependency 'rake', '>= 0.9.2.2', '< 1'
|
24
25
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: tork
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version:
|
4
|
+
version: 16.0.0
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -10,11 +10,11 @@ authors:
|
|
10
10
|
autorequire:
|
11
11
|
bindir: bin
|
12
12
|
cert_chain: []
|
13
|
-
date: 2012-01-
|
13
|
+
date: 2012-01-26 00:00:00.000000000 Z
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
16
16
|
name: binman
|
17
|
-
requirement: &
|
17
|
+
requirement: &15804480 !ruby/object:Gem::Requirement
|
18
18
|
none: false
|
19
19
|
requirements:
|
20
20
|
- - ~>
|
@@ -22,10 +22,10 @@ dependencies:
|
|
22
22
|
version: '3'
|
23
23
|
type: :runtime
|
24
24
|
prerelease: false
|
25
|
-
version_requirements: *
|
25
|
+
version_requirements: *15804480
|
26
26
|
- !ruby/object:Gem::Dependency
|
27
27
|
name: json
|
28
|
-
requirement: &
|
28
|
+
requirement: &15803820 !ruby/object:Gem::Requirement
|
29
29
|
none: false
|
30
30
|
requirements:
|
31
31
|
- - ! '>='
|
@@ -36,10 +36,10 @@ dependencies:
|
|
36
36
|
version: '2'
|
37
37
|
type: :runtime
|
38
38
|
prerelease: false
|
39
|
-
version_requirements: *
|
39
|
+
version_requirements: *15803820
|
40
40
|
- !ruby/object:Gem::Dependency
|
41
41
|
name: guard
|
42
|
-
requirement: &
|
42
|
+
requirement: &15818660 !ruby/object:Gem::Requirement
|
43
43
|
none: false
|
44
44
|
requirements:
|
45
45
|
- - ! '>='
|
@@ -50,10 +50,10 @@ dependencies:
|
|
50
50
|
version: '1'
|
51
51
|
type: :runtime
|
52
52
|
prerelease: false
|
53
|
-
version_requirements: *
|
53
|
+
version_requirements: *15818660
|
54
54
|
- !ruby/object:Gem::Dependency
|
55
55
|
name: diff-lcs
|
56
|
-
requirement: &
|
56
|
+
requirement: &15816880 !ruby/object:Gem::Requirement
|
57
57
|
none: false
|
58
58
|
requirements:
|
59
59
|
- - ! '>='
|
@@ -64,10 +64,10 @@ dependencies:
|
|
64
64
|
version: '2'
|
65
65
|
type: :runtime
|
66
66
|
prerelease: false
|
67
|
-
version_requirements: *
|
67
|
+
version_requirements: *15816880
|
68
68
|
- !ruby/object:Gem::Dependency
|
69
69
|
name: md2man
|
70
|
-
requirement: &
|
70
|
+
requirement: &15815560 !ruby/object:Gem::Requirement
|
71
71
|
none: false
|
72
72
|
requirements:
|
73
73
|
- - ~>
|
@@ -75,8 +75,22 @@ dependencies:
|
|
75
75
|
version: '1'
|
76
76
|
type: :development
|
77
77
|
prerelease: false
|
78
|
-
version_requirements: *
|
79
|
-
|
78
|
+
version_requirements: *15815560
|
79
|
+
- !ruby/object:Gem::Dependency
|
80
|
+
name: rake
|
81
|
+
requirement: &15814800 !ruby/object:Gem::Requirement
|
82
|
+
none: false
|
83
|
+
requirements:
|
84
|
+
- - ! '>='
|
85
|
+
- !ruby/object:Gem::Version
|
86
|
+
version: 0.9.2.2
|
87
|
+
- - <
|
88
|
+
- !ruby/object:Gem::Version
|
89
|
+
version: '1'
|
90
|
+
type: :development
|
91
|
+
prerelease: false
|
92
|
+
version_requirements: *15814800
|
93
|
+
description: Continuous testing tool for Ruby.
|
80
94
|
email:
|
81
95
|
- sunaku@gmail.com
|
82
96
|
- burns180@gmail.com
|
@@ -126,7 +140,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
126
140
|
version: '0'
|
127
141
|
segments:
|
128
142
|
- 0
|
129
|
-
hash:
|
143
|
+
hash: 1234155726209121791
|
130
144
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
131
145
|
none: false
|
132
146
|
requirements:
|
@@ -135,11 +149,11 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
135
149
|
version: '0'
|
136
150
|
segments:
|
137
151
|
- 0
|
138
|
-
hash:
|
152
|
+
hash: 1234155726209121791
|
139
153
|
requirements: []
|
140
154
|
rubyforge_project:
|
141
155
|
rubygems_version: 1.8.11
|
142
156
|
signing_key:
|
143
157
|
specification_version: 3
|
144
|
-
summary:
|
158
|
+
summary: Test with fork.
|
145
159
|
test_files: []
|