parallel_tests 0.4.4 → 0.4.5

Sign up to get free protection for your applications and to get access to all the features.
@@ -57,15 +57,17 @@ Setup for non-rails
57
57
  sudo gem install parallel_tests
58
58
  # go to your project dir
59
59
  parallel_test OR parallel_spec OR parallel_cucumber
60
- # [Optional] use ENV['TEST_ENV_NUMBER'] inside your tests for separate db/resources/etc.
60
+ # [Optional] use ENV['TEST_ENV_NUMBER'] inside your tests to select separate db/memcache/etc.
61
+
62
+ [optional] Only run selected files & folders:
63
+ parallel_test test/bar test/baz/xxx_text.rb
61
64
 
62
65
  Options are:
63
66
  -n [PROCESSES] How many processes to use, default: available CPUs
64
67
  -p, --path [PATH] run tests inside this path only
65
- --no-sort do not sort files before running them
66
- -r, --root [PATH] execute test commands from this path
67
- -f, --files [FILES] run these test files (comma-separated list w/o spaces)
68
+ --no-sort do not sort files before running them
68
69
  -m, --multiply-processes [FLOAT] use given number as a multiplier of processes to run
70
+ -r, --root [PATH] execute test commands from this path
69
71
  -e, --exec [COMMAND] execute this code parallel and with ENV['TEST_ENV_NUM']
70
72
  -o, --test-options '[OPTIONS]' execute test commands with those options
71
73
  -t, --type [TYPE] which type of tests to run? test, spec or features
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.4.4
1
+ 0.4.5
@@ -9,7 +9,10 @@ require "parallel_tests"
9
9
  options = {}
10
10
  OptionParser.new do |opts|
11
11
  opts.banner = <<BANNER
12
- Run tests in parallel, giving each process ENV['TEST_ENV_NUMBER'] ('', '2', '3', ...)
12
+ Run all tests in parallel, giving each process ENV['TEST_ENV_NUMBER'] ('', '2', '3', ...)
13
+
14
+ [optional] Only run selected files & folders:
15
+ parallel_test test/bar test/baz/xxx_text.rb
13
16
 
14
17
  Options are:
15
18
  BANNER
@@ -19,7 +22,7 @@ BANNER
19
22
  opts.on("-m [FLOAT]", "--multiply-processes [FLOAT]", Float, "use given number as a multiplier of processes to run"){ |multiply| options[:multiply] = multiply }
20
23
  opts.on("-r", '--root [PATH]', "execute test commands from this path"){|path| options[:root] = path }
21
24
  opts.on("-e", '--exec [COMMAND]', "execute this code parallel and with ENV['TEST_ENV_NUM']"){|path| options[:execute] = path }
22
- opts.on("-o", "--test-options '[SOMETHING]'", "execute test commands with those options"){|arg| options[:test_options] = arg }
25
+ opts.on("-o", "--test-options '[OPTIONS]'", "execute test commands with those options"){|arg| options[:test_options] = arg }
23
26
  opts.on("-t", "--type [TYPE]", "which type of tests to run? test, spec or features"){|type| options[:type] = type }
24
27
  opts.on('-v', '--version', 'Show Version'){ puts ParallelTests::VERSION; exit}
25
28
  opts.on("-h", "--help", "Show this.") { puts opts; exit }
@@ -7,17 +7,24 @@ class ParallelSpecs < ParallelTests
7
7
  end
8
8
 
9
9
  def self.executable
10
- if bundler_enabled?
11
- "bundle exec spec"
12
- elsif File.file?("script/spec")
10
+ cmd = if File.file?("script/spec")
13
11
  "script/spec"
12
+ elsif bundler_enabled?
13
+ cmd = (run("bundle show rspec") =~ %r{/rspec-1[^/]+$} ? "spec" : "rspec")
14
+ "bundle exec #{cmd}"
14
15
  else
15
- "spec"
16
+ %w[spec rspec].detect{|cmd| system "#{cmd} --version > /dev/null 2>&1" }
16
17
  end
18
+ cmd or raise("Can't find executables rspec or spec")
17
19
  end
18
20
 
19
21
  protected
20
22
 
23
+ # so it can be stubbed....
24
+ def self.run(cmd)
25
+ `#{cmd}`
26
+ end
27
+
21
28
  def self.spec_opts
22
29
  opts = ['spec/parallel_spec.opts', 'spec/spec.opts'].detect{|f| File.file?(f) }
23
30
  opts ? "-O #{opts}" : nil
@@ -5,11 +5,11 @@
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = %q{parallel_tests}
8
- s.version = "0.4.4"
8
+ s.version = "0.4.5"
9
9
 
10
10
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
11
  s.authors = ["Michael Grosser"]
12
- s.date = %q{2010-07-16}
12
+ s.date = %q{2010-08-17}
13
13
  s.email = %q{grosser.michael@gmail.com}
14
14
  s.executables = ["parallel_spec", "parallel_cucumber", "parallel_test"]
15
15
  s.extra_rdoc_files = [
@@ -88,11 +88,11 @@ describe 'CLI' do
88
88
  write 'xxx6_spec.rb', 'describe("it"){it("should"){sleep 2}}'
89
89
  t = Time.now
90
90
  run_specs :processes => 6
91
- expected = ((Parallel.processor_count == 1 or ENV['RUN_CODE_RUN']) ? 10 : 5)
91
+ expected = 10
92
92
  (Time.now - t).should <= expected
93
93
  end
94
94
 
95
- it "can run with given files" do
95
+ it "can can with given files" do
96
96
  write "x1_spec.rb", "puts '111'"
97
97
  write "x2_spec.rb", "puts '222'"
98
98
  write "x3_spec.rb", "puts '333'"
@@ -106,6 +106,6 @@ describe 'CLI' do
106
106
  write "x1_spec.rb", ""
107
107
  write "x2_spec.rb", ""
108
108
  result = run_specs(:add => "--test-options ' --version'", :processes => 2)
109
- result.should =~ /^rspec [\d\.]+\nrspec [\d\.]+$/m # prints version twice
109
+ result.should =~ /\d+\.\d+\.\d+\..*\d+\.\d+\.\d+\./m # prints version twice
110
110
  end
111
111
  end
@@ -33,12 +33,22 @@ describe ParallelSpecs do
33
33
  ParallelSpecs.run_tests(['xxx'],1,'')
34
34
  end
35
35
 
36
- it "run bundle exec spec when on bundler 0.9" do
36
+ it "run bundle exec spec when on bundler 0.9 and rspec 1" do
37
+ File.stub!(:file?).with('script/spec').and_return false
37
38
  ParallelSpecs.stub!(:bundler_enabled?).and_return true
39
+ ParallelSpecs.stub!(:run).with("bundle show rspec").and_return "/foo/bar/rspec-1.0.2"
38
40
  ParallelSpecs.should_receive(:open).with{|x,y| x =~ %r{bundle exec spec}}.and_return mocked_process
39
41
  ParallelSpecs.run_tests(['xxx'],1,'')
40
42
  end
41
43
 
44
+ it "run bundle exec rspec when on bundler 0.9 and rspec 2" do
45
+ File.stub!(:file?).with('script/spec').and_return false
46
+ ParallelSpecs.stub!(:bundler_enabled?).and_return true
47
+ ParallelSpecs.stub!(:run).with("bundle show rspec").and_return "/foo/bar/rspec-2.0.2"
48
+ ParallelSpecs.should_receive(:open).with{|x,y| x =~ %r{bundle exec rspec}}.and_return mocked_process
49
+ ParallelSpecs.run_tests(['xxx'],1,'')
50
+ end
51
+
42
52
  it "runs script/spec when script/spec can be found" do
43
53
  File.should_receive(:file?).with('script/spec').and_return true
44
54
  ParallelSpecs.should_receive(:open).with{|x,y| x =~ %r{script/spec}}.and_return mocked_process
metadata CHANGED
@@ -5,8 +5,8 @@ version: !ruby/object:Gem::Version
5
5
  segments:
6
6
  - 0
7
7
  - 4
8
- - 4
9
- version: 0.4.4
8
+ - 5
9
+ version: 0.4.5
10
10
  platform: ruby
11
11
  authors:
12
12
  - Michael Grosser
@@ -14,7 +14,7 @@ autorequire:
14
14
  bindir: bin
15
15
  cert_chain: []
16
16
 
17
- date: 2010-07-16 00:00:00 +02:00
17
+ date: 2010-08-17 00:00:00 +02:00
18
18
  default_executable:
19
19
  dependencies:
20
20
  - !ruby/object:Gem::Dependency