octotest 0.0.1
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/README.md +48 -0
- data/bin/octotest +33 -0
- data/lib/autotest/octotest_rspec.rb +6 -0
- data/lib/autotest/octotest_rspec2.rb +6 -0
- data/lib/octotest.rb +16 -0
- data/lib/octotest/autotest.rb +22 -0
- data/spec/octotest_spec.rb +8 -0
- data/spec/spec_helper.rb +13 -0
- metadata +122 -0
data/README.md
ADDED
@@ -0,0 +1,48 @@
|
|
1
|
+
# Octotest
|
2
|
+
|
3
|
+
Octotest will run your tests in multiple rubies. Octotest only works for
|
4
|
+
projects using [bundler](http://github.com/carlhuda/bundler).
|
5
|
+
|
6
|
+
## Installation
|
7
|
+
|
8
|
+
gem install octotest
|
9
|
+
|
10
|
+
## Usage
|
11
|
+
|
12
|
+
Add the following to `autotest/discover.rb`
|
13
|
+
|
14
|
+
Autotest.add_discovery { "octotest" }
|
15
|
+
|
16
|
+
# optional hardcoded rubies for this app
|
17
|
+
ENV["OCTOTEST_RUBIES"] = "ruby-1.9.2 ruby-1.8.7@somegemset"
|
18
|
+
|
19
|
+
Can alternately set up the environment variable in your shell environment:
|
20
|
+
|
21
|
+
export OCTOTEST_RUBIES="ruby-1.9.2 ruby-1.8.7@somegemset"
|
22
|
+
|
23
|
+
Run `autotest`
|
24
|
+
|
25
|
+
Octotest: using ruby-1.8.7
|
26
|
+
Octotest: bundler not found, installing
|
27
|
+
Successfully installed bundler-1.0.2
|
28
|
+
1 gem installed
|
29
|
+
Octotest: gems out of date, running bundle install
|
30
|
+
Fetching source index for http://rubygems.org/
|
31
|
+
Installing rspec (2.0.0.rc)
|
32
|
+
Using bundler (1.0.2)
|
33
|
+
Your bundle is complete! Use `bundle show [gemname]` to see where a bundled gem is installed.
|
34
|
+
|
35
|
+
SomeLibrary
|
36
|
+
has a passing test
|
37
|
+
|
38
|
+
Finished in 0.00075 seconds
|
39
|
+
1 example, 0 failures
|
40
|
+
|
41
|
+
Octotest: using ruby-1.9.2
|
42
|
+
|
43
|
+
SomeLibrary
|
44
|
+
has a passing test
|
45
|
+
|
46
|
+
Finished in 0.00124 seconds
|
47
|
+
1 example, 0 failures
|
48
|
+
|
data/bin/octotest
ADDED
@@ -0,0 +1,33 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
|
3
|
+
RUBY = ARGV.shift
|
4
|
+
|
5
|
+
def log(message)
|
6
|
+
puts "Octotest: #{message}"
|
7
|
+
STDOUT.flush
|
8
|
+
end
|
9
|
+
|
10
|
+
def conditional(command)
|
11
|
+
run command, true
|
12
|
+
yield unless $?.to_i == 0
|
13
|
+
end
|
14
|
+
|
15
|
+
def run(command, silent=false)
|
16
|
+
output = %x{ rvm #{RUBY} exec #{command} 2>&1 }
|
17
|
+
puts output unless silent
|
18
|
+
STDOUT.flush
|
19
|
+
end
|
20
|
+
|
21
|
+
log "using #{RUBY}"
|
22
|
+
|
23
|
+
conditional("gem spec bundler") do
|
24
|
+
log "bundler not found, installing"
|
25
|
+
run "gem install bundler"
|
26
|
+
end
|
27
|
+
|
28
|
+
conditional("bundle check") do
|
29
|
+
log "gems out of date, running bundle install"
|
30
|
+
run "bundle install"
|
31
|
+
end
|
32
|
+
|
33
|
+
run "bundle exec ruby #{ARGV.join(" ")}"
|
data/lib/octotest.rb
ADDED
@@ -0,0 +1,16 @@
|
|
1
|
+
module Octotest
|
2
|
+
|
3
|
+
VERSION = "0.0.1"
|
4
|
+
|
5
|
+
def self.binary
|
6
|
+
@binary ||= (ENV["OCTOTEST_BIN"] || "octotest")
|
7
|
+
end
|
8
|
+
|
9
|
+
def self.rubies
|
10
|
+
@rubies ||= begin
|
11
|
+
ENV["OCTOTEST_RUBIES"] ? ENV["OCTOTEST_RUBIES"].split :
|
12
|
+
%x{ rvm list strings }.split("\n")
|
13
|
+
end
|
14
|
+
end
|
15
|
+
|
16
|
+
end
|
@@ -0,0 +1,22 @@
|
|
1
|
+
require "octotest"
|
2
|
+
|
3
|
+
module Octotest::Autotest
|
4
|
+
|
5
|
+
def run_tests
|
6
|
+
mtime = self.last_mtime
|
7
|
+
|
8
|
+
Octotest.rubies.each do |ruby|
|
9
|
+
begin
|
10
|
+
@ruby = ruby
|
11
|
+
self.last_mtime = mtime
|
12
|
+
super
|
13
|
+
rescue
|
14
|
+
end
|
15
|
+
end
|
16
|
+
end
|
17
|
+
|
18
|
+
def ruby
|
19
|
+
[ Octotest.binary, @ruby ].join(" ")
|
20
|
+
end
|
21
|
+
|
22
|
+
end
|
data/spec/spec_helper.rb
ADDED
@@ -0,0 +1,13 @@
|
|
1
|
+
require "rubygems"
|
2
|
+
require "bundler/setup"
|
3
|
+
require "rspec"
|
4
|
+
|
5
|
+
$:.unshift File.expand_path("../../lib", __FILE__)
|
6
|
+
|
7
|
+
Rspec.configure do |config|
|
8
|
+
config.color_enabled = true
|
9
|
+
|
10
|
+
config.filter_run :focus => true
|
11
|
+
config.run_all_when_everything_filtered = true
|
12
|
+
config.formatter = :documentation
|
13
|
+
end
|
metadata
ADDED
@@ -0,0 +1,122 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: octotest
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
hash: 29
|
5
|
+
prerelease: false
|
6
|
+
segments:
|
7
|
+
- 0
|
8
|
+
- 0
|
9
|
+
- 1
|
10
|
+
version: 0.0.1
|
11
|
+
platform: ruby
|
12
|
+
authors:
|
13
|
+
- |
|
14
|
+
David Dollar
|
15
|
+
|
16
|
+
autorequire:
|
17
|
+
bindir: bin
|
18
|
+
cert_chain: []
|
19
|
+
|
20
|
+
date: 2010-10-05 00:00:00 -04:00
|
21
|
+
default_executable:
|
22
|
+
dependencies:
|
23
|
+
- !ruby/object:Gem::Dependency
|
24
|
+
requirement: &id001 !ruby/object:Gem::Requirement
|
25
|
+
none: false
|
26
|
+
requirements:
|
27
|
+
- - ">="
|
28
|
+
- !ruby/object:Gem::Version
|
29
|
+
hash: 3
|
30
|
+
segments:
|
31
|
+
- 0
|
32
|
+
version: "0"
|
33
|
+
type: :development
|
34
|
+
name: parka
|
35
|
+
prerelease: false
|
36
|
+
version_requirements: *id001
|
37
|
+
- !ruby/object:Gem::Dependency
|
38
|
+
requirement: &id002 !ruby/object:Gem::Requirement
|
39
|
+
none: false
|
40
|
+
requirements:
|
41
|
+
- - "="
|
42
|
+
- !ruby/object:Gem::Version
|
43
|
+
hash: 7712058
|
44
|
+
segments:
|
45
|
+
- 2
|
46
|
+
- 0
|
47
|
+
- 0
|
48
|
+
- rc
|
49
|
+
version: 2.0.0.rc
|
50
|
+
type: :development
|
51
|
+
name: rspec
|
52
|
+
prerelease: false
|
53
|
+
version_requirements: *id002
|
54
|
+
- !ruby/object:Gem::Dependency
|
55
|
+
requirement: &id003 !ruby/object:Gem::Requirement
|
56
|
+
none: false
|
57
|
+
requirements:
|
58
|
+
- - ">="
|
59
|
+
- !ruby/object:Gem::Version
|
60
|
+
hash: 3
|
61
|
+
segments:
|
62
|
+
- 0
|
63
|
+
version: "0"
|
64
|
+
type: :runtime
|
65
|
+
name: autotest
|
66
|
+
prerelease: false
|
67
|
+
version_requirements: *id003
|
68
|
+
description: Run your tests on multiple rubies
|
69
|
+
email: |
|
70
|
+
<ddollar@gmail.com>
|
71
|
+
|
72
|
+
executables:
|
73
|
+
- octotest
|
74
|
+
extensions: []
|
75
|
+
|
76
|
+
extra_rdoc_files: []
|
77
|
+
|
78
|
+
files:
|
79
|
+
- bin/octotest
|
80
|
+
- README.md
|
81
|
+
- lib/autotest/octotest_rspec.rb
|
82
|
+
- lib/autotest/octotest_rspec2.rb
|
83
|
+
- lib/octotest.rb
|
84
|
+
- lib/octotest/autotest.rb
|
85
|
+
- spec/octotest_spec.rb
|
86
|
+
- spec/spec_helper.rb
|
87
|
+
has_rdoc: true
|
88
|
+
homepage: http://github.com/ddollar/octotest
|
89
|
+
licenses: []
|
90
|
+
|
91
|
+
post_install_message:
|
92
|
+
rdoc_options: []
|
93
|
+
|
94
|
+
require_paths:
|
95
|
+
- lib
|
96
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
97
|
+
none: false
|
98
|
+
requirements:
|
99
|
+
- - ">="
|
100
|
+
- !ruby/object:Gem::Version
|
101
|
+
hash: 3
|
102
|
+
segments:
|
103
|
+
- 0
|
104
|
+
version: "0"
|
105
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
106
|
+
none: false
|
107
|
+
requirements:
|
108
|
+
- - ">="
|
109
|
+
- !ruby/object:Gem::Version
|
110
|
+
hash: 3
|
111
|
+
segments:
|
112
|
+
- 0
|
113
|
+
version: "0"
|
114
|
+
requirements: []
|
115
|
+
|
116
|
+
rubyforge_project: nowarning
|
117
|
+
rubygems_version: 1.3.7
|
118
|
+
signing_key:
|
119
|
+
specification_version: 3
|
120
|
+
summary: Run your tests on multiple rubies
|
121
|
+
test_files: []
|
122
|
+
|