tork 18.2.4 → 19.0.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.markdown +65 -0
- data/README.markdown +60 -298
- data/bin/tork +99 -62
- data/bin/tork-driver +124 -25
- data/bin/tork-engine +45 -23
- data/bin/tork-herald +5 -5
- data/bin/tork-master +79 -32
- data/bin/tork-notify +70 -0
- data/bin/tork-remote +80 -0
- data/lib/tork/cliapp.rb +73 -0
- data/lib/tork/config.rb +14 -97
- data/lib/tork/config/coverage/master.rb +29 -0
- data/lib/tork/config/coverage/worker.rb +1 -0
- data/lib/tork/config/cucumber/driver.rb +11 -0
- data/lib/tork/config/cucumber/worker.rb +14 -0
- data/lib/tork/config/default/config.rb +5 -0
- data/lib/tork/config/dotlog/onfork.rb +2 -0
- data/lib/tork/config/factory_girl/onfork.rb +2 -0
- data/lib/tork/config/factory_girl/worker.rb +1 -0
- data/lib/tork/config/logdir/onfork.rb +4 -0
- data/lib/tork/config/parallel_tests/worker.rb +4 -0
- data/lib/tork/config/rails/driver.rb +15 -0
- data/lib/tork/config/rails/master.rb +12 -0
- data/lib/tork/config/rails/worker.rb +21 -0
- data/lib/tork/config/spec/driver.rb +17 -0
- data/lib/tork/config/spec/master.rb +3 -0
- data/lib/tork/config/spec/worker.rb +3 -0
- data/lib/tork/config/test/driver.rb +17 -0
- data/lib/tork/config/test/master.rb +3 -0
- data/lib/tork/config/test/worker.rb +23 -0
- data/lib/tork/driver.rb +68 -36
- data/lib/tork/engine.rb +57 -44
- data/lib/tork/master.rb +34 -34
- data/lib/tork/server.rb +118 -17
- data/lib/tork/version.rb +1 -1
- data/man/man1/tork-driver.1 +165 -37
- data/man/man1/tork-engine.1 +50 -32
- data/man/man1/tork-herald.1 +5 -8
- data/man/man1/tork-master.1 +95 -42
- data/man/man1/tork-notify.1 +27 -0
- data/man/man1/tork-remote.1 +38 -0
- data/man/man1/tork.1 +116 -8
- data/tork.gemspec +3 -3
- metadata +36 -25
- data/lib/tork/client.rb +0 -53
- data/lib/tork/config/coverage.rb +0 -40
- data/lib/tork/config/cucumber.rb +0 -32
- data/lib/tork/config/dotlog.rb +0 -8
- data/lib/tork/config/factory_girl.rb +0 -10
- data/lib/tork/config/logdir.rb +0 -10
- data/lib/tork/config/notify.rb +0 -34
- data/lib/tork/config/parallel_tests.rb +0 -9
- data/lib/tork/config/rails.rb +0 -39
data/HISTORY.markdown
CHANGED
@@ -1,3 +1,68 @@
|
|
1
|
+
## Version 19.0.0 (2012-10-17)
|
2
|
+
|
3
|
+
Major:
|
4
|
+
|
5
|
+
* The `.tork.rb` configuration file has been replaced by the `.tork/`
|
6
|
+
directory, which contains specially-named Ruby scripts. Refer to the
|
7
|
+
`TORK_CONFIGS` environment variable in tork(1) for more information.
|
8
|
+
|
9
|
+
* The `Tork::Config` object has been replaced by various data structures in
|
10
|
+
the `Tork::` namespace. See the "FILES" sections in the manual pages of
|
11
|
+
tork programs for information on the data structures that replaced it.
|
12
|
+
|
13
|
+
* `Tork::Config.test_event_hooks` has been removed. Instead, you must now
|
14
|
+
monitor the STDOUT of tork-master(1) or tork-engine(1) either directly
|
15
|
+
or indirectly, via tork-remote(1), and react to their status messages.
|
16
|
+
See the tork-notify(1) program for an example of how to implement this.
|
17
|
+
|
18
|
+
* tork(1): 't' now runs a specified test, whereas 'a' runs all tests.
|
19
|
+
|
20
|
+
* tork-engine(1): the `run_test_file` command now takes line numbers as a
|
21
|
+
variable-length list of arguments (varargs) rather than as an array.
|
22
|
+
|
23
|
+
* tork-engine(1): the `run_test_file` command now runs an entire test file
|
24
|
+
when zero is given as one of the line numbers to be run.
|
25
|
+
|
26
|
+
* tork-master(1): the `load` command is no longer accepted. Instead, you
|
27
|
+
must specify load paths and overhead files in the `.tork/master.rb` file.
|
28
|
+
|
29
|
+
* The `TORK_CONFIGS` env-var is now a colon delimited list of directories.
|
30
|
+
|
31
|
+
* The `tork/client` library has been removed. The threaded IO and popen()
|
32
|
+
wrappers that it provided have been replaced by the powerful IO.select().
|
33
|
+
|
34
|
+
Minor:
|
35
|
+
|
36
|
+
* tork(1): allow user to specify arguments after command key
|
37
|
+
|
38
|
+
* tork(1): add 'k' to stop all currently running tests with SIGKILL
|
39
|
+
|
40
|
+
* add tork-remote(1) to remotely control any tork program. This feature is
|
41
|
+
made possible by the awesome power of IO.select() and UNIX domain sockets.
|
42
|
+
|
43
|
+
* add tork-notify(1) as example of using tork-remote(1) and tork-engine(1)
|
44
|
+
|
45
|
+
* tork-engine(1): add `["run_test_files"]` command to run multiple files
|
46
|
+
|
47
|
+
* tork-engine(1): emit edge-triggered `pass_now_fail` and `fail_now_pass`
|
48
|
+
events to notify you about changes in a test file's pass/fail status.
|
49
|
+
|
50
|
+
* typing Control-D now breaks tork programs out of `Tork::Server#loop()`
|
51
|
+
|
52
|
+
Patch:
|
53
|
+
|
54
|
+
* tork-master(1): stop workers with SIGKILL when quitting
|
55
|
+
|
56
|
+
Other:
|
57
|
+
|
58
|
+
* tork(1): document parameters for `t` and `s` commands
|
59
|
+
|
60
|
+
* README: add tip about rlwrap for better interactive
|
61
|
+
|
62
|
+
* README: simplify watch command using pgrep & xargs
|
63
|
+
|
64
|
+
* README: use standard bundle exec; no `--binstubs`
|
65
|
+
|
1
66
|
## Version 18.2.4 (2012-10-10)
|
2
67
|
|
3
68
|
Other:
|
data/README.markdown
CHANGED
@@ -17,7 +17,7 @@ Tork runs your tests as they change, in parallel:
|
|
17
17
|
|
18
18
|
## Features
|
19
19
|
|
20
|
-
* No configuration
|
20
|
+
* No configuration necessary: simply run `tork` to start testing *now!*
|
21
21
|
|
22
22
|
* Runs test files in parallel using fork for multi-core/CPU utilization.
|
23
23
|
|
@@ -25,22 +25,21 @@ Tork runs your tests as they change, in parallel:
|
|
25
25
|
unchanged test files and (2) unchanged tests inside changed test files.
|
26
26
|
|
27
27
|
* Supports MiniTest, Test::Unit, RSpec, and *any testing framework* that (1)
|
28
|
-
exits with a nonzero status to indicate test failures (2) is loaded by
|
28
|
+
exits with a nonzero status to indicate test failures and (2) is loaded by
|
29
29
|
your application's `test/test_helper.rb` or `spec/spec_helper.rb` file.
|
30
30
|
|
31
31
|
* Logs the output from your tests into separate files: one log per test.
|
32
|
-
The path of a log file is simply the path of its test file plus ".log".
|
33
32
|
|
34
|
-
* Configurable through
|
33
|
+
* Configurable through Ruby scripts in your current working directory.
|
35
34
|
|
36
35
|
* You can override the modular `tork*` programs with your own in $PATH.
|
37
36
|
|
38
|
-
*
|
37
|
+
* You can remotely control other `tork*` programs using `tork-remote`.
|
39
38
|
|
40
39
|
### Architecture
|
41
40
|
|
42
|
-
Following UNIX philosophy,
|
43
|
-
*do one thing well*. As a result, you could even create your own
|
41
|
+
Following UNIX philosophy, tork is composed of simple text-based programs that
|
42
|
+
*do one thing well*. As a result, you could even create your own tork user
|
44
43
|
interface by wrapping `tork-driver` appropriately!
|
45
44
|
|
46
45
|
* `tork` is an interactive command-line user interface for `tork-driver`
|
@@ -48,16 +47,34 @@ interface by wrapping `tork-driver` appropriately!
|
|
48
47
|
* `tork-driver` drives the engine according to the herald's observations
|
49
48
|
* `tork-engine` tells master to run tests and keeps track of test results
|
50
49
|
* `tork-master` absorbs test execution overhead and forks to run your tests
|
50
|
+
* `tork-remote` remotely controls any tork program running in the same `pwd`
|
51
|
+
* `tork-notify` shows how to receive and process messages from tork programs
|
51
52
|
|
52
53
|
When the herald observes that files in or beneath the current directory have
|
53
54
|
been written to, it tells the driver, which then commands the master to fork a
|
54
55
|
worker process to run the tests affected by those changed files. This is all
|
55
|
-
performed automatically
|
56
|
+
performed *automatically*. However, to run a test file *manually*, you can:
|
56
57
|
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
|
58
|
+
1. Simply save the file! When you do, tork tries to figure out which tests
|
59
|
+
inside your newly saved test file have changed (using diff and regexps)
|
60
|
+
and then attempts to run just those. To make it run *all* tests in your
|
61
|
+
saved file, simply save the file *again* without changing it.
|
62
|
+
|
63
|
+
2. Type `t` followed by a space and the file you want to run into `tork`:
|
64
|
+
|
65
|
+
# run all of test/some_test.rb
|
66
|
+
t test/some_test.rb
|
67
|
+
|
68
|
+
# run lines 4, 33, and 21 of test/some_test.rb
|
69
|
+
t test/some_test.rb 4 33 21
|
70
|
+
|
71
|
+
3. Send a `["run_test_file"]` message to `tork-engine` using `tork-remote`:
|
72
|
+
|
73
|
+
# run all of test/some_test.rb
|
74
|
+
echo run_test_file test/some_test.rb | tork-remote tork-engine
|
75
|
+
|
76
|
+
# run lines 4, 33, and 21 of test/some_test.rb
|
77
|
+
echo run_test_file test/some_test.rb 4 33 21 | tork-remote tork-engine
|
61
78
|
|
62
79
|
## Installation
|
63
80
|
|
@@ -72,6 +89,7 @@ tests in your saved file, simply save the file *again* without changing it.
|
|
72
89
|
|
73
90
|
Process.respond_to? :fork # must be true
|
74
91
|
Signal.list.key? 'TERM' # must be true
|
92
|
+
Signal.list.key? 'KILL' # must be true
|
75
93
|
|
76
94
|
* To make the `tork-herald` program's filesystem monitoring more efficient:
|
77
95
|
|
@@ -82,9 +100,9 @@ tests in your saved file, simply save the file *again* without changing it.
|
|
82
100
|
|
83
101
|
git clone git://github.com/sunaku/tork
|
84
102
|
cd tork
|
85
|
-
bundle install
|
86
|
-
|
87
|
-
|
103
|
+
bundle install
|
104
|
+
bundle exec tork --help # run it directly
|
105
|
+
bundle exec rake --tasks # packaging tasks
|
88
106
|
|
89
107
|
## Usage
|
90
108
|
|
@@ -92,9 +110,24 @@ tests in your saved file, simply save the file *again* without changing it.
|
|
92
110
|
|
93
111
|
tork --help
|
94
112
|
|
113
|
+
You can add line editing, history, and filename completion:
|
114
|
+
|
115
|
+
rlwrap -c tork
|
116
|
+
|
117
|
+
You can control tork(1) interactively from another terminal:
|
118
|
+
|
119
|
+
tork-remote tork-engine
|
120
|
+
# type your commands here, one per line.
|
121
|
+
# press Control-D to exit tork-remote(1)
|
122
|
+
|
123
|
+
You can also do the same non-interactively using a pipeline:
|
124
|
+
|
125
|
+
# run lines 4, 33, and 21 of test/some_test.rb
|
126
|
+
echo run_test_file test/some_test.rb 4 33 21 | tork-remote tork-engine
|
127
|
+
|
95
128
|
You can monitor your test processes from another terminal:
|
96
129
|
|
97
|
-
watch '
|
130
|
+
watch 'pgrep -f ^tork | xargs -r ps u'
|
98
131
|
|
99
132
|
### With RSpec
|
100
133
|
|
@@ -106,8 +139,11 @@ https://github.com/rspec/rspec-core/pull/569/files ) fixes the problem.
|
|
106
139
|
|
107
140
|
### With [Ruby on Rails]
|
108
141
|
|
109
|
-
For Rails 3 or newer, use the `
|
110
|
-
|
142
|
+
For Rails 3 or newer, use the `rails` configuration helper *before* the `test`
|
143
|
+
or `spec` helpers. Otherwise your test helper will load Rails *before* the
|
144
|
+
specified `rails` configuration helper has a chance to disable class caching!
|
145
|
+
|
146
|
+
For older Rails, make sure your `config/environments/test.rb` file contains:
|
111
147
|
|
112
148
|
config.cache_classes = false
|
113
149
|
|
@@ -120,287 +156,13 @@ adapter][memory_test_fix]. Otherwise, you *might* face these errors:
|
|
120
156
|
|
121
157
|
## Configuration
|
122
158
|
|
123
|
-
Tork looks for a configuration
|
124
|
-
directory. The configuration
|
125
|
-
can query and modify the
|
126
|
-
|
127
|
-
Note that Tork *does not* automatically reload changes in your configuration
|
128
|
-
file. So you must restart Tork accordingly if your configuration changes.
|
129
|
-
|
130
|
-
## Configuration helpers
|
131
|
-
|
132
|
-
In case you did not read the `tork --help` manual page, please note that you
|
133
|
-
can pass *multiple* configuration helpers to tork(1) at the command line!
|
134
|
-
|
135
|
-
### Code coverage (Ruby 1.9)
|
136
|
-
|
137
|
-
At the command line:
|
138
|
-
|
139
|
-
tork coverage
|
140
|
-
|
141
|
-
Or in your configuration file:
|
142
|
-
|
143
|
-
require 'tork/config/coverage'
|
144
|
-
|
145
|
-
This configuration helper prints a coverage report at the end of your log file
|
146
|
-
in YAML format. The report is a hash containing the following information per
|
147
|
-
each loaded Ruby file that exist in or beneath the current working directory:
|
148
|
-
|
149
|
-
* :grade - percentage of C0 code coverage for source lines of code
|
150
|
-
* :nsloc - total number of source lines of code in the file
|
151
|
-
* :holes - line numbers of source lines that were not covered
|
152
|
-
|
153
|
-
### [Ruby on Rails]
|
154
|
-
|
155
|
-
At the command line:
|
156
|
-
|
157
|
-
tork rails
|
158
|
-
|
159
|
-
Or in your configuration file:
|
160
|
-
|
161
|
-
require 'tork/config/rails'
|
162
|
-
|
163
|
-
### [Cucumber]
|
164
|
-
|
165
|
-
At the command line:
|
166
|
-
|
167
|
-
tork cucumber
|
168
|
-
|
169
|
-
Or in your configuration file:
|
170
|
-
|
171
|
-
require 'tork/config/cucumber'
|
172
|
-
|
173
|
-
### [factory_girl]
|
174
|
-
|
175
|
-
At the command line:
|
176
|
-
|
177
|
-
tork factory_girl
|
178
|
-
|
179
|
-
Or in your configuration file:
|
180
|
-
|
181
|
-
require 'tork/config/factory_girl'
|
182
|
-
|
183
|
-
### [parallel_tests]
|
184
|
-
|
185
|
-
At the command line:
|
186
|
-
|
187
|
-
tork parallel_tests
|
188
|
-
|
189
|
-
Or in your configuration file:
|
190
|
-
|
191
|
-
require 'tork/config/parallel_tests'
|
192
|
-
|
193
|
-
### Hide log files by prefixing their names with a dot
|
194
|
-
|
195
|
-
At the command line:
|
196
|
-
|
197
|
-
tork dotlog
|
198
|
-
|
199
|
-
Or in your configuration file:
|
200
|
-
|
201
|
-
require 'tork/config/dotlog'
|
202
|
-
|
203
|
-
### Isolate log files into a separate `log/` directory
|
204
|
-
|
205
|
-
At the command line:
|
206
|
-
|
207
|
-
tork logdir
|
208
|
-
|
209
|
-
Or in your configuration file:
|
210
|
-
|
211
|
-
require 'tork/config/logdir'
|
212
|
-
|
213
|
-
### Receive notifications via libnotify, growl, or xmessage
|
214
|
-
|
215
|
-
At the command line:
|
216
|
-
|
217
|
-
tork notify
|
218
|
-
|
219
|
-
Or in your configuration file:
|
220
|
-
|
221
|
-
require 'tork/config/notify'
|
222
|
-
|
223
|
-
## Configuration options
|
224
|
-
|
225
|
-
This table shows which configuration options affect which Tork components:
|
226
|
-
|
227
|
-
| Affects `tork-driver` | Affects `tork-engine` | Affects `tork-master` |
|
228
|
-
| --------------------- | --------------------- | --------------------- |
|
229
|
-
| overhead_load_paths | test_event_hooks | max_forked_workers |
|
230
|
-
| overhead_file_globs | | before_fork_hooks |
|
231
|
-
| reabsorb_file_greps | | after_fork_hooks |
|
232
|
-
| all_test_file_globs | | |
|
233
|
-
| test_file_globbers | | |
|
234
|
-
|
235
|
-
### Tork::Config.max_forked_workers
|
236
|
-
|
237
|
-
Maximum number of worker processes at any given time. The default value is
|
238
|
-
the number of processors detected on your system, or 1 if detection fails.
|
239
|
-
|
240
|
-
### Tork::Config.overhead_load_paths
|
241
|
-
|
242
|
-
Array of paths that are prepended to Ruby's `$LOAD_PATH` before the
|
243
|
-
test execution overhead is loaded into `tork-master`.
|
244
|
-
|
245
|
-
### Tork::Config.overhead_file_globs
|
246
|
-
|
247
|
-
Array of file globbing patterns that describe a set of Ruby scripts that are
|
248
|
-
loaded into `tork-master` as test execution overhead.
|
249
|
-
|
250
|
-
### Tork::Config.reabsorb_file_greps
|
251
|
-
|
252
|
-
Array of regular expressions that describe a set of file paths that cause the
|
253
|
-
test execution overhead to be reabsorbed in `tork-master` when they change.
|
254
|
-
|
255
|
-
### Tork::Config.all_test_file_globs
|
256
|
-
|
257
|
-
Array of file globbing patterns that describe the set of all test files in
|
258
|
-
your Ruby application.
|
259
|
-
|
260
|
-
### Tork::Config.test_file_globbers
|
261
|
-
|
262
|
-
Hash that maps (1) a regular expression describing a set of file paths to (2)
|
263
|
-
a lambda function that accepts a `MatchData` object containing the results of
|
264
|
-
the regular expression matching against the path of a changed file, and yields
|
265
|
-
one or more file globbing patterns (a single string, or an array of strings)
|
266
|
-
that describe a set of test files that need to be run.
|
267
|
-
|
268
|
-
The results of these functions are recursively expanded (fed back into them)
|
269
|
-
to construct an entire dependency tree of test files that need to be run. For
|
270
|
-
instance, if one function returns a glob that yields files matched by another
|
271
|
-
function, then that second function will be called to glob more test files.
|
272
|
-
This process repeats until all dependent test files have been accounted for.
|
273
|
-
|
274
|
-
#### Single glob expansion
|
275
|
-
|
276
|
-
For example, if test files had the same names as their source files followed by an
|
277
|
-
underscore and the file name in reverse like this:
|
278
|
-
|
279
|
-
* `lib/hello.rb` => `test/hello_olleh.rb`
|
280
|
-
* `app/world.rb` => `spec/world_ldrow.rb`
|
281
|
-
|
282
|
-
Then you would add the following to your configuration file:
|
283
|
-
|
284
|
-
Tork::Config.test_file_globbers[%r<^(lib|app)/.*?([^/]+?)\.rb$>] = lambda do |matches|
|
285
|
-
name = matches[2]
|
286
|
-
"{test,spec}/**/#{name}_#{name.reverse}.rb"
|
287
|
-
end
|
288
|
-
|
289
|
-
#### Multi-glob expansion
|
290
|
-
|
291
|
-
For example, if test files could optionally have "test" or "spec" prefixed or
|
292
|
-
appended to their already peculiar names, like so:
|
293
|
-
|
294
|
-
* `lib/hello.rb` => `test/hello_olleh_test.rb`
|
295
|
-
* `lib/hello.rb` => `test/test_hello_olleh.rb`
|
296
|
-
* `app/world.rb` => `spec/world_ldrow_spec.rb`
|
297
|
-
* `app/world.rb` => `spec/spec_world_ldrow.rb`
|
298
|
-
|
299
|
-
Then you would add the following to your configuration file:
|
300
|
-
|
301
|
-
Tork::Config.test_file_globbers[%r<^(lib|app)/.*?([^/]+?)\.rb$>] = lambda do |matches|
|
302
|
-
name = matches[2]
|
303
|
-
["{test,spec}/**/#{name}_#{name.reverse}.rb",
|
304
|
-
"{test,spec}/**/#{name}_#{name.reverse}_{test,spec}.rb",
|
305
|
-
"{test,spec}/**/{test,spec}_#{name}_#{name.reverse}.rb"]
|
306
|
-
end
|
307
|
-
|
308
|
-
#### Recursive expansion
|
309
|
-
|
310
|
-
For example, if you wanted to run test files associated with `lib/hello.rb`
|
311
|
-
whenever the `app/world.rb` file changed, then you would write:
|
312
|
-
|
313
|
-
Tork::Config.test_file_globbers[%r<^app/world\.rb$>] = lambda do |matches|
|
314
|
-
'lib/hello.rb'
|
315
|
-
end
|
316
|
-
|
317
|
-
This effectively aliases one file onto another, but not in both directions.
|
318
|
-
|
319
|
-
#### Suppressing expansion
|
320
|
-
|
321
|
-
These lambda functions can return `nil` if they do not wish for a particular
|
322
|
-
source file to be tested. For example, to ignore tests for all source files
|
323
|
-
except those within a `models/` directory, you would write:
|
324
|
-
|
325
|
-
Tork::Config.test_file_globbers[%r<^(lib|app)(/.*?)([^/]+?)\.rb$>] = lambda do |matches|
|
326
|
-
if matches[2].include? '/models/'
|
327
|
-
["{test,spec}/**/#{matches[3]}_{test,spec}.rb",
|
328
|
-
"{test,spec}/**/{test,spec}_#{matches[3]}.rb"]
|
329
|
-
#else # implied by the Ruby language
|
330
|
-
#nil # implied by the Ruby language
|
331
|
-
end
|
332
|
-
end
|
333
|
-
|
334
|
-
### Tork::Config.before_fork_hooks
|
335
|
-
|
336
|
-
Array of lambda functions that are invoked inside `tork-master` before a
|
337
|
-
worker process is forked to run a test file. These functions are given:
|
338
|
-
|
339
|
-
1. The path of the test file that will be run by the worker process.
|
340
|
-
|
341
|
-
2. An array of line numbers in the test file to run. If this array is empty,
|
342
|
-
then the entire test file will be run.
|
343
|
-
|
344
|
-
3. The path of the log file containing the live output of the worker process.
|
345
|
-
|
346
|
-
4. The sequence number of the worker process that will be forked shortly.
|
347
|
-
|
348
|
-
For example, to see some real values:
|
349
|
-
|
350
|
-
Tork::Config.before_fork_hooks.push lambda {
|
351
|
-
|test_file, line_numbers, log_file, worker_number|
|
352
|
-
|
353
|
-
p :before_fork_hooks => {
|
354
|
-
:test_file => test_file,
|
355
|
-
:line_numbers => line_numbers,
|
356
|
-
:log_file => log_file,
|
357
|
-
:worker_number => worker_number,
|
358
|
-
}
|
359
|
-
}
|
360
|
-
|
361
|
-
### Tork::Config.after_fork_hooks
|
362
|
-
|
363
|
-
Array of lambda functions that are invoked inside a worker process forked
|
364
|
-
by `tork-master`. These functions are given:
|
365
|
-
|
366
|
-
1. The path of the test file that will be run by the worker process.
|
367
|
-
|
368
|
-
2. An array of line numbers in the test file to run. If this array is empty,
|
369
|
-
then the entire test file will be run.
|
370
|
-
|
371
|
-
3. The path of the log file containing the live output of the worker process.
|
372
|
-
|
373
|
-
4. The sequence number of the worker process.
|
374
|
-
|
375
|
-
For example, to see some real values, including the worker process' PID:
|
376
|
-
|
377
|
-
Tork::Config.after_fork_hooks.push lambda {
|
378
|
-
|test_file, line_numbers, log_file, worker_number|
|
379
|
-
|
380
|
-
p :after_fork_hooks => {
|
381
|
-
:test_file => test_file,
|
382
|
-
:line_numbers => line_numbers,
|
383
|
-
:log_file => log_file,
|
384
|
-
:worker_number => worker_number,
|
385
|
-
:worker_pid => $$,
|
386
|
-
}
|
387
|
-
}
|
388
|
-
|
389
|
-
The first function in this array instructs Test::Unit and RSpec to only run
|
390
|
-
those tests that are defined on the given line numbers. This accelerates your
|
391
|
-
test-driven development cycle by only running tests you are currently editing.
|
392
|
-
|
393
|
-
### Tork::Config.test_event_hooks
|
394
|
-
|
395
|
-
Array of lambda functions that are invoked inside `tork-engine` whenever it
|
396
|
-
receives a status message (passed into those functions) from `tork-master`.
|
397
|
-
Run `tork-master --help` for more information about these status messages.
|
398
|
-
|
399
|
-
For example, to see some real values:
|
159
|
+
Tork looks for a configuration directory named `.tork/` inside its working
|
160
|
+
directory. The configuration directory contains specially-named Ruby scripts,
|
161
|
+
within which you can query and modify the settings for various tork programs.
|
162
|
+
See the "FILES" sections in the manual pages of tork programs for details.
|
400
163
|
|
401
|
-
|
402
|
-
|
403
|
-
}
|
164
|
+
Note that tork *does not* automatically reload changes from your configuration
|
165
|
+
directory. Consequently, you must restart tork if your configuration changes.
|
404
166
|
|
405
167
|
## License
|
406
168
|
|