tddium-preview 0.1.3 → 0.1.4
Sign up to get free protection for your applications and to get access to all the features.
- data/Gemfile.lock +1 -1
- data/README.rdoc +5 -14
- data/lib/tddium/constant.rb +3 -3
- data/lib/tddium/version.rb +1 -1
- data/lib/tddium.rb +6 -4
- data/spec/tddium_spec.rb +36 -18
- data/tddium.gemspec +7 -2
- metadata +9 -4
data/Gemfile.lock
CHANGED
data/README.rdoc
CHANGED
@@ -1,23 +1,14 @@
|
|
1
1
|
= tddium
|
2
2
|
|
3
|
-
tddium takes the pain out of
|
3
|
+
tddium takes the pain out of Ruby TDD.
|
4
4
|
|
5
|
-
It automatically starts private Amazon EC2 Instances, runs your
|
6
|
-
|
7
|
-
|
5
|
+
It automatically starts private Amazon EC2 Instances, runs your tests, collects
|
6
|
+
results, and cleans up the EC2 resources it used so you only pay for what you
|
7
|
+
use.
|
8
8
|
|
9
9
|
== Getting Started
|
10
10
|
|
11
|
-
|
12
|
-
version 1.2.x is supported but version 1.5.x is not.
|
13
|
-
|
14
|
-
2. Install ruby into your rvm and create a gemset
|
15
|
-
|
16
|
-
3. Install the tddium-preview gem into your new gemset
|
17
|
-
|
18
|
-
4. In your GIT repo run tddium suite to create a new suite
|
19
|
-
|
20
|
-
4. Run tddium spec to run your hosted tests
|
11
|
+
See http://www.tddium.com/support for more information.
|
21
12
|
|
22
13
|
== Copyright
|
23
14
|
|
data/lib/tddium/constant.rb
CHANGED
@@ -12,7 +12,7 @@ module TddiumConstant
|
|
12
12
|
SLEEP_TIME_BETWEEN_POLLS = 2
|
13
13
|
ENVIRONMENT = "production"
|
14
14
|
SSH_FILE = "~/.ssh/id_rsa.pub"
|
15
|
-
TEST_PATTERN = "
|
15
|
+
TEST_PATTERN = "spec/**/*_spec.rb"
|
16
16
|
end
|
17
17
|
|
18
18
|
module Git
|
@@ -60,12 +60,12 @@ module TddiumConstant
|
|
60
60
|
end
|
61
61
|
|
62
62
|
module Process
|
63
|
-
TERMINATE_INSTRUCTION = "Ctrl-C to
|
63
|
+
TERMINATE_INSTRUCTION = "Press Ctrl-C to stop waiting. Tests will continue running."
|
64
64
|
INTERRUPT = "Interrupted"
|
65
65
|
STARTING_TEST = "Starting %s tests..."
|
66
66
|
CHECK_TEST_STATUS = "Use 'tddium status' to check on pending jobs"
|
67
67
|
FINISHED_TEST = "Finished in %s seconds"
|
68
|
-
CHECK_TEST_REPORT = "
|
68
|
+
CHECK_TEST_REPORT = "Test report: %s"
|
69
69
|
EXISTING_SUITE = "Current suite: %s"
|
70
70
|
CREATING_SUITE = "Creating suite '%s'. This will take a few seconds."
|
71
71
|
PASSWORD_CONFIRMATION_INCORRECT = "Password confirmation incorrect"
|
data/lib/tddium/version.rb
CHANGED
data/lib/tddium.rb
CHANGED
@@ -156,9 +156,11 @@ class Tddium < Thor
|
|
156
156
|
end
|
157
157
|
|
158
158
|
# Set test_pattern param
|
159
|
-
test_pattern = options[:test_pattern]
|
160
159
|
if current_suite_options["test_pattern"]
|
161
|
-
|
160
|
+
test_pattern = current_suite_options["test_pattern"]
|
161
|
+
say Text::Process::USING_PREVIOUS_TEST_PATTERN % test_pattern if options[:test_pattern] == current_suite_options["test_pattern"]
|
162
|
+
else
|
163
|
+
test_pattern = options[:test_pattern]
|
162
164
|
end
|
163
165
|
|
164
166
|
start_time = Time.now
|
@@ -228,7 +230,7 @@ class Tddium < Thor
|
|
228
230
|
# Print out the result
|
229
231
|
say ""
|
230
232
|
say Text::Process::FINISHED_TEST % (Time.now - start_time)
|
231
|
-
say "#{finished_tests.size}
|
233
|
+
say "#{finished_tests.size} tests, #{test_statuses["failed"]} failures, #{test_statuses["error"]} errors, #{test_statuses["pending"]} pending"
|
232
234
|
|
233
235
|
# Save the spec options
|
234
236
|
write_suite(current_suite_id, {"user_data_file" => user_data_file_path,
|
@@ -532,7 +534,7 @@ class Tddium < Thor
|
|
532
534
|
end
|
533
535
|
|
534
536
|
def write_tddium_to_gitignore
|
535
|
-
content = File.read(Git::GITIGNORE)
|
537
|
+
content = File.exists?(Git::GITIGNORE) ? File.read(Git::GITIGNORE) : ''
|
536
538
|
unless content.include?("#{tddium_file_name}\n")
|
537
539
|
File.open(Git::GITIGNORE, "a") do |file|
|
538
540
|
file.write("#{tddium_file_name}\n")
|
data/spec/tddium_spec.rb
CHANGED
@@ -29,7 +29,7 @@ describe Tddium do
|
|
29
29
|
SAMPLE_SESSION_ID = 1
|
30
30
|
SAMPLE_SUITE_ID = 1
|
31
31
|
SAMPLE_USER_ID = 1
|
32
|
-
DEFAULT_TEST_PATTERN =
|
32
|
+
DEFAULT_TEST_PATTERN = Tddium::Default::TEST_PATTERN
|
33
33
|
CUSTOM_TEST_PATTERN = "**/cat_spec.rb"
|
34
34
|
SAMPLE_SUITE_RESPONSE = {"repo_name" => SAMPLE_APP_NAME, "branch" => SAMPLE_BRANCH_NAME, "id" => SAMPLE_SUITE_ID, "ruby_version"=>SAMPLE_RUBY_VERSION, "git_repo_uri" => SAMPLE_GIT_REPO_URI}
|
35
35
|
SAMPLE_SUITES_RESPONSE = {"suites" => [SAMPLE_SUITE_RESPONSE]}
|
@@ -724,26 +724,37 @@ describe Tddium do
|
|
724
724
|
|
725
725
|
it_should_behave_like "sending the api key"
|
726
726
|
|
727
|
-
context "
|
728
|
-
|
729
|
-
|
730
|
-
|
731
|
-
|
732
|
-
|
733
|
-
|
734
|
-
|
727
|
+
context "test pattern" do
|
728
|
+
context "default test pattern" do
|
729
|
+
it "should POST the names of the file names extracted from the test_pattern parameter" do
|
730
|
+
current_dir = Dir.pwd
|
731
|
+
call_api_should_receive(:params => {:suite_id => SAMPLE_SUITE_ID,
|
732
|
+
:tests => [{:test_name => "#{current_dir}/spec/cat_spec.rb"},
|
733
|
+
{:test_name => "#{current_dir}/spec/dog_spec.rb"},
|
734
|
+
{:test_name => "#{current_dir}/spec/mouse_spec.rb"}]})
|
735
|
+
run_spec(tddium)
|
736
|
+
end
|
735
737
|
end
|
736
|
-
end
|
737
738
|
|
738
|
-
|
739
|
-
|
740
|
-
|
741
|
-
|
742
|
-
|
743
|
-
|
739
|
+
context "--test-pattern=#{CUSTOM_TEST_PATTERN}" do
|
740
|
+
it "should POST the names of the file names extracted from the test_pattern parameter" do
|
741
|
+
current_dir = Dir.pwd
|
742
|
+
call_api_should_receive(:params => {:suite_id => SAMPLE_SUITE_ID,
|
743
|
+
:tests => [{:test_name => "#{current_dir}/spec/cat_spec.rb"}]})
|
744
|
+
run_spec(tddium, {:test_pattern=>CUSTOM_TEST_PATTERN})
|
745
|
+
end
|
744
746
|
end
|
745
|
-
end
|
746
747
|
|
748
|
+
context "remembered from last run" do
|
749
|
+
it "should POST the names of the file names extracted from the remembered test_pattern" do
|
750
|
+
tddium.stub(:current_suite_options).and_return({'test_pattern'=>CUSTOM_TEST_PATTERN})
|
751
|
+
current_dir = Dir.pwd
|
752
|
+
call_api_should_receive(:params => {:suite_id => SAMPLE_SUITE_ID,
|
753
|
+
:tests => [{:test_name => "#{current_dir}/spec/cat_spec.rb"}]})
|
754
|
+
run_spec(tddium)
|
755
|
+
end
|
756
|
+
end
|
757
|
+
end
|
747
758
|
|
748
759
|
context "'POST #{Tddium::Api::Path::REGISTER_TEST_EXECUTIONS}' is successful" do
|
749
760
|
before do
|
@@ -890,7 +901,7 @@ describe Tddium do
|
|
890
901
|
end
|
891
902
|
|
892
903
|
it "should save the spec options" do
|
893
|
-
tddium.should_receive(:write_suite).with(SAMPLE_SUITE_ID, {"user_data_file" => nil, "max_parallelism" => 3, "test_pattern" =>
|
904
|
+
tddium.should_receive(:write_suite).with(SAMPLE_SUITE_ID, {"user_data_file" => nil, "max_parallelism" => 3, "test_pattern" => DEFAULT_TEST_PATTERN})
|
894
905
|
run_spec(tddium, {:max_parallelism => 3})
|
895
906
|
end
|
896
907
|
|
@@ -1132,6 +1143,13 @@ describe Tddium do
|
|
1132
1143
|
gitignore_file.should include(".tddium.test")
|
1133
1144
|
gitignore_file.should include("something")
|
1134
1145
|
end
|
1146
|
+
|
1147
|
+
it "it should create .gitignore with tddium if it doesn't exist" do
|
1148
|
+
FileUtils.rm_f(Tddium::Git::GITIGNORE)
|
1149
|
+
run_suite(tddium)
|
1150
|
+
gitignore_file = File.open(Tddium::Git::GITIGNORE) { |file| file.read }
|
1151
|
+
gitignore_file.should include(".tddium.test")
|
1152
|
+
end
|
1135
1153
|
end
|
1136
1154
|
|
1137
1155
|
context "passing no cli options" do
|
data/tddium.gemspec
CHANGED
@@ -13,8 +13,13 @@ Gem::Specification.new do |s|
|
|
13
13
|
s.authors = ["Solano Labs"]
|
14
14
|
s.email = ["info@tddium.com"]
|
15
15
|
s.homepage = "http://www.tddium.com/"
|
16
|
-
s.summary = %q{tddium Hosted Testing}
|
17
|
-
s.description =
|
16
|
+
s.summary = %q{tddium Hosted Ruby Testing}
|
17
|
+
s.description = <<-EOF
|
18
|
+
tddium runs your rspec, cucumber, and test::unit tests in our managed
|
19
|
+
cloud environment. Tests run in parallel to save you time, and, if you use
|
20
|
+
Rails, tddium takes care of setting up fresh isolated DB instances for each test
|
21
|
+
instance. Tests can also access a limited set of private Selenium RC servers.
|
22
|
+
EOF
|
18
23
|
|
19
24
|
s.rubyforge_project = "tddium"
|
20
25
|
|
metadata
CHANGED
@@ -2,7 +2,7 @@
|
|
2
2
|
name: tddium-preview
|
3
3
|
version: !ruby/object:Gem::Version
|
4
4
|
prerelease:
|
5
|
-
version: 0.1.
|
5
|
+
version: 0.1.4
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
8
8
|
- Solano Labs
|
@@ -10,7 +10,7 @@ autorequire:
|
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
12
|
|
13
|
-
date: 2011-05-
|
13
|
+
date: 2011-05-08 00:00:00 -07:00
|
14
14
|
default_executable:
|
15
15
|
dependencies:
|
16
16
|
- !ruby/object:Gem::Dependency
|
@@ -112,7 +112,12 @@ dependencies:
|
|
112
112
|
version: "0"
|
113
113
|
type: :development
|
114
114
|
version_requirements: *id009
|
115
|
-
description:
|
115
|
+
description: |
|
116
|
+
tddium runs your rspec, cucumber, and test::unit tests in our managed
|
117
|
+
cloud environment. Tests run in parallel to save you time, and, if you use
|
118
|
+
Rails, tddium takes care of setting up fresh isolated DB instances for each test
|
119
|
+
instance. Tests can also access a limited set of private Selenium RC servers.
|
120
|
+
|
116
121
|
email:
|
117
122
|
- info@tddium.com
|
118
123
|
executables:
|
@@ -164,7 +169,7 @@ rubyforge_project: tddium
|
|
164
169
|
rubygems_version: 1.5.2
|
165
170
|
signing_key:
|
166
171
|
specification_version: 3
|
167
|
-
summary: tddium Hosted Testing
|
172
|
+
summary: tddium Hosted Ruby Testing
|
168
173
|
test_files:
|
169
174
|
- spec/spec_helper.rb
|
170
175
|
- spec/tddium_spec.rb
|