tddium-preview 0.1.0 → 0.1.1
Sign up to get free protection for your applications and to get access to all the features.
- data/Gemfile.lock +1 -1
- data/lib/tddium.rb +15 -2
- data/lib/tddium/constant.rb +2 -0
- data/lib/tddium/version.rb +1 -1
- data/spec/tddium_spec.rb +27 -10
- metadata +2 -2
data/Gemfile.lock
CHANGED
data/lib/tddium.rb
CHANGED
@@ -102,6 +102,7 @@ class Tddium < Thor
|
|
102
102
|
method_option :environment, :type => :string, :default => nil
|
103
103
|
method_option :user_data_file, :type => :string, :default => nil
|
104
104
|
method_option :max_parallelism, :type => :numeric, :default => nil
|
105
|
+
method_option :test_pattern, :type => :string, :default => "**/*_spec.rb"
|
105
106
|
def spec
|
106
107
|
set_default_environment(options[:environment])
|
107
108
|
return unless git_repo? && tddium_settings && suite_for_current_branch?
|
@@ -127,6 +128,12 @@ class Tddium < Thor
|
|
127
128
|
say Text::Process::USING_PREVIOUS_MAX_PARALLELISM % max_parallelism if max_parallelism == current_suite_options["max_parallelism"]
|
128
129
|
test_execution_params[:max_parallelism] = max_parallelism
|
129
130
|
end
|
131
|
+
|
132
|
+
# Set test_pattern param
|
133
|
+
test_pattern = options[:test_pattern]
|
134
|
+
if current_suite_options["test_pattern"]
|
135
|
+
say Text::Process::USING_PREVIOUS_TEST_PATTERN % test_pattern if test_pattern == current_suite_options["test_pattern"]
|
136
|
+
end
|
130
137
|
|
131
138
|
start_time = Time.now
|
132
139
|
|
@@ -138,9 +145,13 @@ class Tddium < Thor
|
|
138
145
|
return unless update_git_remote_and_push(suite_details)
|
139
146
|
|
140
147
|
# Get a list of files to be tested
|
141
|
-
test_pattern = suite_details["suite"]["test_pattern"]
|
142
148
|
test_files = Dir.glob(test_pattern).collect {|file_path| {:test_name => file_path}}
|
143
149
|
|
150
|
+
if test_files.empty?
|
151
|
+
say Text::Error::NO_MATCHING_FILES % test_pattern
|
152
|
+
return
|
153
|
+
end
|
154
|
+
|
144
155
|
# Create a session
|
145
156
|
new_session = call_api(:post, Api::Path::SESSIONS)
|
146
157
|
session_id = new_session["session"]["id"]
|
@@ -194,7 +205,9 @@ class Tddium < Thor
|
|
194
205
|
say "#{finished_tests.size} examples, #{test_statuses["failed"]} failures, #{test_statuses["error"]} errors, #{test_statuses["pending"]} pending"
|
195
206
|
|
196
207
|
# Save the spec options
|
197
|
-
write_suite(current_suite_id, {"user_data_file" => user_data_file_path,
|
208
|
+
write_suite(current_suite_id, {"user_data_file" => user_data_file_path,
|
209
|
+
"max_parallelism" => max_parallelism,
|
210
|
+
"test_pattern" => test_pattern})
|
198
211
|
rescue TddiumClient::Error::Base
|
199
212
|
end
|
200
213
|
end
|
data/lib/tddium/constant.rb
CHANGED
@@ -87,6 +87,7 @@ tddium spec
|
|
87
87
|
LOGGED_OUT_SUCCESSFULLY = "Logged out successfully"
|
88
88
|
USING_PREVIOUS_USER_DATA_FILE = "Using the previous user data file '%s'"
|
89
89
|
USING_PREVIOUS_MAX_PARALLELISM = "Using the previous value of max_parallelism = %s"
|
90
|
+
USING_PREVIOUS_TEST_PATTERN = "Using the previous value of test_pattern = %s"
|
90
91
|
end
|
91
92
|
|
92
93
|
module Status
|
@@ -116,6 +117,7 @@ http://blog.tddium.com/home/
|
|
116
117
|
|
117
118
|
"
|
118
119
|
NO_USER_DATA_FILE = "User data file '%s' does not exist"
|
120
|
+
NO_MATCHING_FILES = "No files match '%s'"
|
119
121
|
end
|
120
122
|
end
|
121
123
|
|
data/lib/tddium/version.rb
CHANGED
data/spec/tddium_spec.rb
CHANGED
@@ -27,7 +27,9 @@ describe Tddium do
|
|
27
27
|
SAMPLE_RECURLY_URL = "https://tddium.recurly.com/account/1"
|
28
28
|
SAMPLE_SESSION_ID = 1
|
29
29
|
SAMPLE_SUITE_ID = 1
|
30
|
-
SAMPLE_TEST_PATTERN = "**/*_spec.rb"
|
30
|
+
SAMPLE_TEST_PATTERN = "**/*_spec.rb" # XXX Bogus. Removeme.
|
31
|
+
DEFAULT_TEST_PATTERN = "**/*_spec.rb"
|
32
|
+
CUSTOM_TEST_PATTERN = "**/cat_spec.rb"
|
31
33
|
SAMPLE_SUITE_RESPONSE = {"repo_name" => SAMPLE_APP_NAME, "branch" => SAMPLE_BRANCH_NAME, "id" => SAMPLE_SUITE_ID, "test_pattern"=>SAMPLE_TEST_PATTERN, "ruby_version"=>SAMPLE_RUBY_VERSION, "git_repo_uri" => SAMPLE_GIT_REPO_URI}
|
32
34
|
SAMPLE_SUITES_RESPONSE = {"suites" => [SAMPLE_SUITE_RESPONSE]}
|
33
35
|
SAMPLE_TDDIUM_CONFIG_FILE = ".tddium.test"
|
@@ -48,13 +50,16 @@ describe Tddium do
|
|
48
50
|
(array.last.is_a?(Hash) && is_options) ? array.pop : {}
|
49
51
|
end
|
50
52
|
|
51
|
-
def run(tddium, options = {:environment => "test"})
|
53
|
+
def run(tddium, options = {:test_pattern => DEFAULT_TEST_PATTERN, :environment => "test"})
|
52
54
|
send("run_#{example.example_group.ancestors.map(&:description)[-2][1..-1]}", tddium, options)
|
53
55
|
end
|
54
56
|
|
55
57
|
[:suite, :spec, :status, :account, :login, :logout].each do |method|
|
56
58
|
define_method("run_#{method}") do |tddium, *params|
|
57
59
|
options = params.first || {}
|
60
|
+
if method == :spec
|
61
|
+
options[:test_pattern] = DEFAULT_TEST_PATTERN unless options.has_key?(:test_pattern)
|
62
|
+
end
|
58
63
|
options[:environment] = "test" unless options.has_key?(:environment)
|
59
64
|
stub_cli_options(tddium, options)
|
60
65
|
tddium.send(method)
|
@@ -636,15 +641,27 @@ describe Tddium do
|
|
636
641
|
|
637
642
|
it_should_behave_like "sending the api key"
|
638
643
|
|
639
|
-
|
640
|
-
|
641
|
-
|
642
|
-
|
643
|
-
|
644
|
-
|
645
|
-
|
644
|
+
context "default test pattern" do
|
645
|
+
it "should POST the names of the file names extracted from the test_pattern parameter" do
|
646
|
+
current_dir = Dir.pwd
|
647
|
+
call_api_should_receive(:params => {:suite_id => SAMPLE_SUITE_ID,
|
648
|
+
:tests => [{:test_name => "#{current_dir}/spec/cat_spec.rb"},
|
649
|
+
{:test_name => "#{current_dir}/spec/dog_spec.rb"},
|
650
|
+
{:test_name => "#{current_dir}/spec/mouse_spec.rb"}]})
|
651
|
+
run_spec(tddium)
|
652
|
+
end
|
646
653
|
end
|
647
654
|
|
655
|
+
context "--test-pattern=#{CUSTOM_TEST_PATTERN}" do
|
656
|
+
it "should POST the names of the file names extracted from the test_pattern parameter" do
|
657
|
+
current_dir = Dir.pwd
|
658
|
+
call_api_should_receive(:params => {:suite_id => SAMPLE_SUITE_ID,
|
659
|
+
:tests => [{:test_name => "#{current_dir}/spec/cat_spec.rb"}]})
|
660
|
+
run_spec(tddium, {:test_pattern=>CUSTOM_TEST_PATTERN})
|
661
|
+
end
|
662
|
+
end
|
663
|
+
|
664
|
+
|
648
665
|
context "'POST #{Tddium::Api::Path::REGISTER_TEST_EXECUTIONS}' is successful" do
|
649
666
|
before do
|
650
667
|
response = {"added"=>0, "existing"=>1, "errors"=>0, "status"=>0}
|
@@ -790,7 +807,7 @@ describe Tddium do
|
|
790
807
|
end
|
791
808
|
|
792
809
|
it "should save the spec options" do
|
793
|
-
tddium.should_receive(:write_suite).with(SAMPLE_SUITE_ID, {"user_data_file" => nil, "max_parallelism" => 3})
|
810
|
+
tddium.should_receive(:write_suite).with(SAMPLE_SUITE_ID, {"user_data_file" => nil, "max_parallelism" => 3, "test_pattern" => "**/*_spec.rb"})
|
794
811
|
run_spec(tddium, {:max_parallelism => 3})
|
795
812
|
end
|
796
813
|
|
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.1
|
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-04-
|
13
|
+
date: 2011-04-29 00:00:00 -04:00
|
14
14
|
default_executable:
|
15
15
|
dependencies:
|
16
16
|
- !ruby/object:Gem::Dependency
|