forking_test_runner 0.3.1 → 0.4.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.
- checksums.yaml +4 -4
- data/lib/forking_test_runner/version.rb +1 -1
- data/lib/forking_test_runner.rb +47 -19
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 3f4949bda4bf2340ecc2bdbc26e27dcf7997a4e0
|
4
|
+
data.tar.gz: 8d7c6cbd163dd04cf57f5af38f7edeef622a7d00
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: bb20aee7735368aae9210789f9248cd70044018d6234242600c17b4bc84553eb680fbd8eda38791acd0ef3b0d516feae66d72dbe83ac1944a34a5f50461a345f
|
7
|
+
data.tar.gz: 8192705be39e309668fc7fb7c54330b824698b423e9729c271ce8f4698077e46d1ac37ac689070abe2732be023fe2c672ca68cc4d156f7b5318f4ac614aa2c65
|
data/lib/forking_test_runner.rb
CHANGED
@@ -1,9 +1,13 @@
|
|
1
|
+
require 'benchmark'
|
2
|
+
|
1
3
|
module ForkingTestRunner
|
2
4
|
CLEAR = "------"
|
3
5
|
|
4
6
|
class << self
|
5
7
|
def cli(argv)
|
6
|
-
|
8
|
+
@rspec = delete_argv("--rspec", argv, arg: false)
|
9
|
+
|
10
|
+
disable_test_autorun
|
7
11
|
load_test_env(delete_argv("--helper", argv))
|
8
12
|
|
9
13
|
# figure out what we need to run
|
@@ -98,7 +102,8 @@ module ForkingTestRunner
|
|
98
102
|
end
|
99
103
|
|
100
104
|
def load_test_env(helper=nil)
|
101
|
-
|
105
|
+
require 'rspec' if @rspec
|
106
|
+
helper = helper || (@rspec ? "spec/spec_helper" : "test/test_helper")
|
102
107
|
require "./#{helper}"
|
103
108
|
end
|
104
109
|
|
@@ -126,12 +131,12 @@ module ForkingTestRunner
|
|
126
131
|
end
|
127
132
|
|
128
133
|
# don't let minitest setup another exit hook
|
129
|
-
def
|
130
|
-
|
134
|
+
def disable_test_autorun
|
135
|
+
toggle_test_autorun false
|
131
136
|
end
|
132
137
|
|
133
|
-
def
|
134
|
-
|
138
|
+
def enable_test_autorun(file)
|
139
|
+
toggle_test_autorun true, file
|
135
140
|
end
|
136
141
|
|
137
142
|
def run_test(file)
|
@@ -141,8 +146,7 @@ module ForkingTestRunner
|
|
141
146
|
child = fork do
|
142
147
|
key = (ActiveRecord::VERSION::STRING >= "4.1.0" ? :test : "test")
|
143
148
|
ActiveRecord::Base.establish_connection key
|
144
|
-
|
145
|
-
require "./#{file}"
|
149
|
+
enable_test_autorun(file)
|
146
150
|
end
|
147
151
|
Process.wait(child)
|
148
152
|
end
|
@@ -174,23 +178,47 @@ module ForkingTestRunner
|
|
174
178
|
group.map { |test| [test, (tests[test] if group_by == :runtime)] }
|
175
179
|
end
|
176
180
|
|
177
|
-
def delete_argv(name, argv)
|
181
|
+
def delete_argv(name, argv, arg: true)
|
178
182
|
return unless index = argv.index(name)
|
179
183
|
argv.delete_at(index)
|
180
|
-
|
184
|
+
if arg
|
185
|
+
argv.delete_at(index) || raise("Missing argument for #{name}")
|
186
|
+
else
|
187
|
+
true
|
188
|
+
end
|
181
189
|
end
|
182
190
|
|
183
|
-
def
|
184
|
-
|
185
|
-
|
186
|
-
|
187
|
-
|
191
|
+
def toggle_test_autorun(value, file=nil)
|
192
|
+
if @rspec
|
193
|
+
if value
|
194
|
+
RSpec::Core::Runner.run([file])
|
195
|
+
else
|
196
|
+
require 'bundler/setup'
|
197
|
+
require 'rspec'
|
198
|
+
RSpec::Core::Runner.disable_autorun! # disable autorun in case the user left it in spec_helper.rb
|
199
|
+
$LOAD_PATH.unshift "./lib"
|
200
|
+
$LOAD_PATH.unshift "./spec"
|
201
|
+
end
|
188
202
|
else
|
189
|
-
|
190
|
-
|
203
|
+
@minitest_class ||= begin
|
204
|
+
require 'bundler/setup'
|
205
|
+
gem 'minitest'
|
206
|
+
if Gem.loaded_specs["minitest"].version.segments.first == 4 # 4.x
|
207
|
+
require 'minitest/unit'
|
208
|
+
MiniTest::Unit
|
209
|
+
else
|
210
|
+
require 'minitest'
|
211
|
+
Minitest
|
212
|
+
end
|
213
|
+
end
|
214
|
+
|
215
|
+
@minitest_class.class_variable_set("@@installed_at_exit", !value)
|
216
|
+
|
217
|
+
if value
|
218
|
+
@minitest_class.autorun
|
219
|
+
require "./#{file}"
|
220
|
+
end
|
191
221
|
end
|
192
|
-
klass.class_variable_set("@@installed_at_exit", !value)
|
193
|
-
klass.autorun if value
|
194
222
|
end
|
195
223
|
end
|
196
224
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: forking_test_runner
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.4.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Michael Grosser
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2015-04-
|
11
|
+
date: 2015-04-25 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: parallel_tests
|