testbot 0.5.4 → 0.5.5

Sign up to get free protection for your applications and to get access to all the features.
data/CHANGELOG CHANGED
@@ -1,3 +1,7 @@
1
+ 0.5.5
2
+
3
+ Added RSpec2 support. Thanks to Bryan Helmkamp, https://github.com/brynary.
4
+
1
5
  0.5.4
2
6
 
3
7
  Fixed some typos that caused the ruby interpreter to always be "ruby".
@@ -1,7 +1,6 @@
1
- Testbot is a test distribution tool that works with Rails, RSpec, Test::Unit and Cucumber. The basic idea is that you let testbot spread the load of running your tests across multiple machines to make the tests run faster.
2
-
3
- Using testbot on 11 machines (25 cores) we got our test suite down to **2 minutes from 30**. [More examples of how testbot is used](http://github.com/joakimk/testbot/wiki/How-testbot-is-being-used).
1
+ Testbot is a test distribution tool that works with Rails, RSpec, RSpec2, Test::Unit and Cucumber. The basic idea is that you let testbot spread the load of running your tests across multiple machines to make the tests run faster.
4
2
 
3
+ Using testbot on 11 machines (25 cores) we got our test suite down to **2 minutes from 30**. [More examples of how testbot is used](http://github.com/joakimk/testbot/wiki/How-testbot-is-used).
5
4
 
6
5
  Installing
7
6
  ----
@@ -57,19 +56,19 @@ On every computer that should share CPU resources run:
57
56
  Running tests:
58
57
 
59
58
  testbot --test --connect 192.168.0.100
60
- # --test could also be --spec or --features
59
+ # --test could also be --spec (RSpec), --rspec (RSpec 2) or --features
61
60
 
62
61
  Using testbot with Rails 2:
63
62
 
64
- ruby script/plugin install git://github.com/joakimk/testbot.git -r 'refs/tags/v0.5.4'
63
+ ruby script/plugin install git://github.com/joakimk/testbot.git -r 'refs/tags/v0.5.5'
65
64
  script/generate testbot --connect 192.168.0.100
66
65
 
67
- rake testbot:spec (or :test, :features)
66
+ rake testbot:spec (or :rspec, :test, :features)
68
67
 
69
68
  Using testbot with Rails 3:
70
69
 
71
70
  rails g testbot --connect 192.168.0.100
72
- rake testbot:spec (or :test, :features)
71
+ rake testbot:spec (or :rspec, :test, :features)
73
72
 
74
73
  # Gemfile:
75
74
  gem 'testbot'
@@ -129,3 +128,4 @@ More
129
128
  ----
130
129
 
131
130
  * Check the [wiki](http://github.com/joakimk/testbot/wiki) for more info.
131
+ * Chat: [https://convore.com/github/testbot](https://convore.com/github/testbot)
@@ -1,14 +1,17 @@
1
1
  require File.dirname(__FILE__) + '/rspec_adapter'
2
+ require File.dirname(__FILE__) + '/rspec2_adapter'
2
3
  require File.dirname(__FILE__) + '/cucumber_adapter'
3
4
  require File.dirname(__FILE__) + '/test_unit_adapter'
4
5
 
5
6
  class Adapter
6
7
  def self.all
7
- [ RSpecAdapter, CucumberAdapter, TestUnitAdapter ]
8
+ [ RSpecAdapter, RSpec2Adapter, CucumberAdapter, TestUnitAdapter ]
8
9
  end
9
10
 
10
11
  def self.find(type)
11
12
  case type.to_sym
13
+ when :rspec
14
+ RSpec2Adapter
12
15
  when :spec
13
16
  RSpecAdapter
14
17
  when :features
@@ -6,14 +6,14 @@ class RubyEnv
6
6
 
7
7
  def self.ruby_command(project_path, opts = {})
8
8
  ruby_interpreter = opts[:ruby_interpreter] || "ruby"
9
-
10
- if File.exists?("#{project_path}/#{opts[:script]}")
9
+
10
+ if opts[:script] && File.exists?("#{project_path}/#{opts[:script]}")
11
11
  command = opts[:script]
12
12
  elsif opts[:bin]
13
13
  command = opts[:bin]
14
14
  else
15
15
  command = ruby_interpreter
16
- end
16
+ end
17
17
 
18
18
  if bundler?(project_path)
19
19
  "#{ruby_interpreter} -S bundle exec #{command}"
@@ -0,0 +1,51 @@
1
+ require File.expand_path(File.join(File.dirname(__FILE__), "/helpers/ruby_env"))
2
+
3
+ class RSpec2Adapter
4
+
5
+ def self.command(project_path, ruby_interpreter, files)
6
+ spec_command = RubyEnv.ruby_command(project_path,
7
+ :bin => "rspec",
8
+ :ruby_interpreter => ruby_interpreter)
9
+
10
+ if File.exists?("#{project_path}/spec/spec.opts")
11
+ spec_command += " -O spec/spec.opts"
12
+ end
13
+
14
+ "export RSPEC_COLOR=true; #{spec_command} #{files}"
15
+ end
16
+
17
+ def self.test_files(dir)
18
+ Dir["#{dir}/#{file_pattern}"]
19
+ end
20
+
21
+ def self.get_sizes(files)
22
+ files.map { |file| File.stat(file).size }
23
+ end
24
+
25
+ def self.requester_port
26
+ 2299
27
+ end
28
+
29
+ def self.pluralized
30
+ 'specs'
31
+ end
32
+
33
+ def self.base_path
34
+ "spec"
35
+ end
36
+
37
+ def self.name
38
+ 'RSpec2'
39
+ end
40
+
41
+ def self.type
42
+ 'rspec'
43
+ end
44
+
45
+ private
46
+
47
+ def self.file_pattern
48
+ '**/**/*_spec.rb'
49
+ end
50
+
51
+ end
@@ -1,3 +1,4 @@
1
+ require File.expand_path(File.join(File.dirname(__FILE__), '/version'))
1
2
  require File.expand_path(File.join(File.dirname(__FILE__), '/simple_daemonize'))
2
3
  require File.expand_path(File.join(File.dirname(__FILE__), '/adapters/adapter'))
3
4
  require 'fileutils'
@@ -5,16 +6,6 @@ require 'fileutils'
5
6
  module Testbot
6
7
  require 'railtie' if defined?(Rails)
7
8
 
8
- # Don't forget to update readme and changelog
9
- def self.version
10
- version = "0.5.4"
11
- dev_version_file = File.join(File.dirname(__FILE__), '..', '..', 'DEV_VERSION')
12
- if File.exists?(dev_version_file)
13
- version += File.read(dev_version_file)
14
- end
15
- version
16
- end
17
-
18
9
  if ENV['INTEGRATION_TEST']
19
10
  SERVER_PID = "/tmp/integration_test_testbot_server.pid"
20
11
  RUNNER_PID = "/tmp/integration_test_testbot_runner.pid"
@@ -0,0 +1,12 @@
1
+ module Testbot
2
+ # Don't forget to update readme and changelog
3
+ def self.version
4
+ version = "0.5.5"
5
+ dev_version_file = File.join(File.dirname(__FILE__), '..', '..', 'DEV_VERSION')
6
+ if File.exists?(dev_version_file)
7
+ version += File.read(dev_version_file)
8
+ end
9
+ version
10
+ end
11
+ end
12
+
@@ -52,6 +52,11 @@ class RubyEnvTest < Test::Unit::TestCase
52
52
  assert_equal 'ruby -S script/spec', RubyEnv.ruby_command("path/to/project", :script => "script/spec", :bin => "rspec")
53
53
  end
54
54
 
55
+ should "not look for a script when none is provided" do
56
+ flexmock(File).should_receive(:exists?).once # Once for bundler check
57
+ assert_equal 'ruby -S rspec', RubyEnv.ruby_command("path/to/project", :bin => "rspec")
58
+ end
59
+
55
60
  should "be able to use jruby" do
56
61
  flexmock(RubyEnv).should_receive(:bundler?).and_return(false)
57
62
  flexmock(File).should_receive(:exists?).and_return(true)
@@ -5,6 +5,7 @@ require 'shoulda'
5
5
  class AdapterTest < Test::Unit::TestCase
6
6
 
7
7
  should "be able to find the adapters" do
8
+ assert_equal RSpec2Adapter, Adapter.find(:rspec)
8
9
  assert_equal RSpecAdapter, Adapter.find(:spec)
9
10
  assert_equal CucumberAdapter, Adapter.find(:features)
10
11
  assert_equal TestUnitAdapter, Adapter.find(:test)
@@ -15,7 +16,7 @@ class AdapterTest < Test::Unit::TestCase
15
16
  end
16
17
 
17
18
  should "return be able to all types" do
18
- assert_equal [ RSpecAdapter, CucumberAdapter, TestUnitAdapter ], Adapter.all
19
+ assert_equal [ RSpecAdapter, RSpec2Adapter, CucumberAdapter, TestUnitAdapter ], Adapter.all
19
20
  end
20
21
 
21
22
  end
@@ -1,5 +1,5 @@
1
1
  # -*- encoding: utf-8 -*-
2
- require File.expand_path(File.dirname(__FILE__) + '/lib/shared/testbot')
2
+ require File.expand_path(File.dirname(__FILE__) + '/lib/shared/version')
3
3
 
4
4
  Gem::Specification.new do |s|
5
5
  s.name = "testbot"
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: testbot
3
3
  version: !ruby/object:Gem::Version
4
- hash: 3
4
+ hash: 1
5
5
  prerelease:
6
6
  segments:
7
7
  - 0
8
8
  - 5
9
- - 4
10
- version: 0.5.4
9
+ - 5
10
+ version: 0.5.5
11
11
  platform: ruby
12
12
  authors:
13
13
  - "Joakim Kolsj\xC3\xB6"
@@ -15,7 +15,7 @@ autorequire:
15
15
  bindir: bin
16
16
  cert_chain: []
17
17
 
18
- date: 2011-02-02 00:00:00 +01:00
18
+ date: 2011-04-08 00:00:00 +02:00
19
19
  default_executable:
20
20
  dependencies:
21
21
  - !ruby/object:Gem::Dependency
@@ -256,11 +256,13 @@ files:
256
256
  - lib/shared/adapters/adapter.rb
257
257
  - lib/shared/adapters/cucumber_adapter.rb
258
258
  - lib/shared/adapters/helpers/ruby_env.rb
259
+ - lib/shared/adapters/rspec2_adapter.rb
259
260
  - lib/shared/adapters/rspec_adapter.rb
260
261
  - lib/shared/adapters/test_unit_adapter.rb
261
262
  - lib/shared/simple_daemonize.rb
262
263
  - lib/shared/ssh_tunnel.rb
263
264
  - lib/shared/testbot.rb
265
+ - lib/shared/version.rb
264
266
  - lib/tasks/testbot.rake
265
267
  - lib/testbot.rb
266
268
  - test/fixtures/local/config/testbot.yml
@@ -316,7 +318,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
316
318
  requirements: []
317
319
 
318
320
  rubyforge_project:
319
- rubygems_version: 1.4.2
321
+ rubygems_version: 1.5.3
320
322
  signing_key:
321
323
  specification_version: 3
322
324
  summary: A test distribution tool.