tddium-preview 0.9.4 → 0.9.5
Sign up to get free protection for your applications and to get access to all the features.
- data/Gemfile.lock +9 -8
- data/bin/tddium +14 -0
- data/features/spec_command.feature +18 -0
- data/features/step_definitions/login_steps.rb +14 -0
- data/features/step_definitions/session_steps.rb +17 -0
- data/features/step_definitions/suite_steps.rb +5 -1
- data/features/support/aruba.rb +1 -1
- data/features/support/constants.rb +79 -62
- data/features/support/env.rb +3 -0
- data/lib/tddium/commands/spec.rb +75 -69
- data/lib/tddium/version.rb +1 -1
- data/tddium.gemspec +2 -2
- metadata +24 -23
data/Gemfile.lock
CHANGED
@@ -1,12 +1,12 @@
|
|
1
1
|
PATH
|
2
2
|
remote: .
|
3
3
|
specs:
|
4
|
-
tddium-preview (0.9.
|
4
|
+
tddium-preview (0.9.5)
|
5
5
|
bundler
|
6
6
|
highline
|
7
7
|
json
|
8
|
-
tddium_client (~> 0.1.
|
9
|
-
tddium_reporting (>= 0.0.
|
8
|
+
tddium_client (~> 0.1.1)
|
9
|
+
tddium_reporting (>= 0.0.6)
|
10
10
|
thor
|
11
11
|
|
12
12
|
GEM
|
@@ -42,7 +42,7 @@ GEM
|
|
42
42
|
gherkin (2.4.21)
|
43
43
|
json (>= 1.4.6)
|
44
44
|
highline (1.6.2)
|
45
|
-
httparty (0.8.
|
45
|
+
httparty (0.8.1)
|
46
46
|
multi_json
|
47
47
|
multi_xml
|
48
48
|
json (1.6.1)
|
@@ -68,13 +68,14 @@ GEM
|
|
68
68
|
rspec-expectations (2.6.0)
|
69
69
|
diff-lcs (~> 1.1.2)
|
70
70
|
rspec-mocks (2.6.0)
|
71
|
-
simplecov (0.
|
72
|
-
|
73
|
-
|
71
|
+
simplecov (0.5.3)
|
72
|
+
multi_json (~> 1.0.3)
|
73
|
+
simplecov-html (~> 0.5.3)
|
74
|
+
simplecov-html (0.5.3)
|
74
75
|
sinatra (1.2.6)
|
75
76
|
rack (~> 1.1)
|
76
77
|
tilt (< 2.0, >= 1.2.2)
|
77
|
-
tddium_client (0.1.
|
78
|
+
tddium_client (0.1.1)
|
78
79
|
httparty
|
79
80
|
json
|
80
81
|
tddium_reporting (0.0.6)
|
data/bin/tddium
CHANGED
@@ -7,5 +7,19 @@ require 'yaml'
|
|
7
7
|
YAML::ENGINE.yamler = 'syck' if defined?(YAML::ENGINE)
|
8
8
|
|
9
9
|
$LOAD_PATH.unshift File.join(File.dirname(__FILE__), '..', 'lib')
|
10
|
+
|
11
|
+
if ENV['COVERAGE']
|
12
|
+
begin
|
13
|
+
require 'rubygems'
|
14
|
+
require 'simplecov'
|
15
|
+
SimpleCov.root(ENV['COVERAGE_ROOT'])
|
16
|
+
SimpleCov.start do
|
17
|
+
add_group "Commands", "lib/tddium/commands"
|
18
|
+
end
|
19
|
+
rescue => e
|
20
|
+
STDERR.puts "Can't load simplecov: #{e.inspect} #{e.backtrace}"
|
21
|
+
end
|
22
|
+
end
|
23
|
+
|
10
24
|
require "tddium"
|
11
25
|
Tddium.start
|
@@ -13,3 +13,21 @@ Feature: spec command
|
|
13
13
|
Then the exit status should not be 0
|
14
14
|
And the output should contain "tddium login"
|
15
15
|
And the output should contain "tddium heroku"
|
16
|
+
|
17
|
+
Scenario: Output machine readable data
|
18
|
+
Given the destination repo exists
|
19
|
+
And a git repo is initialized
|
20
|
+
And the user is logged in with a configured suite
|
21
|
+
And the user can create a session
|
22
|
+
And the user successfully registers tests for the suite
|
23
|
+
And the tests start successfully
|
24
|
+
And the test all pass
|
25
|
+
When I run `tddium spec --machine`
|
26
|
+
Then the exit status should be 0
|
27
|
+
And the output should not contain "Ctrl-C"
|
28
|
+
And the output should contain:
|
29
|
+
"""
|
30
|
+
%%%% TDDIUM CI DATA %%%%
|
31
|
+
---
|
32
|
+
:session_id: 1
|
33
|
+
"""
|
@@ -12,6 +12,20 @@ Given /^the user is logged in$/ do
|
|
12
12
|
}
|
13
13
|
end
|
14
14
|
|
15
|
+
Given /^the user is logged in with a configured suite(?: on branch "(.*)")?$/ do |branch|
|
16
|
+
@api_key = "abcdef"
|
17
|
+
branch ||= "master"
|
18
|
+
Antilles.install(:get, "/1/users", SAMPLE_USER_RESPONSE)
|
19
|
+
Antilles.install(:get, "/1/accounts/usage", SAMPLE_ACCOUNT_USAGE)
|
20
|
+
steps %Q{
|
21
|
+
Given a file named ".tddium.mimic" with:
|
22
|
+
"""
|
23
|
+
{"api_key":"#{@api_key}", "branches":{"#{branch}":{"id":1}}}
|
24
|
+
"""
|
25
|
+
And the user has a suite for "repo" on "#{branch}"
|
26
|
+
}
|
27
|
+
end
|
28
|
+
|
15
29
|
Given /^the user can log in and gets API key "([^"]*)"$/ do |apikey|
|
16
30
|
Antilles.install(:post, "/1/users/sign_in", {:status=>0, :api_key=>apikey})
|
17
31
|
end
|
@@ -0,0 +1,17 @@
|
|
1
|
+
Given /^the user can create a session$/ do
|
2
|
+
Antilles.install(:post, "/1/sessions", {:status=>0, :session=>{"id"=>SAMPLE_SESSION_ID}}, :code=>201)
|
3
|
+
end
|
4
|
+
|
5
|
+
Given /^the user successfully registers tests for the suite$/ do
|
6
|
+
Antilles.install(:post, "/1/sessions/#{SAMPLE_SESSION_ID}/test_executions/register", {:status=>0})
|
7
|
+
end
|
8
|
+
|
9
|
+
Given /^the tests start successfully$/ do
|
10
|
+
Antilles.install(:post, "/1/sessions/#{SAMPLE_SESSION_ID}/test_executions/start", SAMPLE_START_TEST_EXECUTIONS_RESPONSE)
|
11
|
+
end
|
12
|
+
|
13
|
+
Given /^the test all pass$/ do
|
14
|
+
Antilles.install(:get, "/1/sessions/#{SAMPLE_SESSION_ID}/test_executions", SAMPLE_TEST_EXECUTIONS_PASSED_RESPONSE)
|
15
|
+
end
|
16
|
+
|
17
|
+
|
@@ -4,12 +4,14 @@ def make_suite_response(name, branch)
|
|
4
4
|
suite = SAMPLE_SUITE_RESPONSE
|
5
5
|
suite["repo_name"] = name
|
6
6
|
suite["branch"] = branch
|
7
|
-
suite["git_repo_uri"] = "file:///#{Dir.tmpdir}/aruba/repo"
|
7
|
+
suite["git_repo_uri"] = "file:///#{Dir.tmpdir}/tddium-aruba/repo"
|
8
|
+
suite["repoman_current"] = true
|
8
9
|
suite
|
9
10
|
end
|
10
11
|
|
11
12
|
Given /^the user has a suite for "([^"]*)" on "([^"]*)"$/ do |name, branch|
|
12
13
|
Antilles.install(:get, "/1/suites", {:status=>0, :suites=>[make_suite_response(name, branch)]})
|
14
|
+
Antilles.install(:get, "/1/suites/1", {:status=>0, :suite=>make_suite_response(name, branch)})
|
13
15
|
end
|
14
16
|
|
15
17
|
Given /^the user has no suites/ do
|
@@ -32,3 +34,5 @@ Given /^I choose defaults for test pattern, CI and campfire settings$/ do
|
|
32
34
|
And I respond to "Campfire subdomain" with "disable"
|
33
35
|
}
|
34
36
|
end
|
37
|
+
|
38
|
+
|
data/features/support/aruba.rb
CHANGED
@@ -2,65 +2,82 @@
|
|
2
2
|
|
3
3
|
require 'aruba/api'
|
4
4
|
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
-
|
62
|
-
|
63
|
-
|
64
|
-
|
65
|
-
|
66
|
-
|
5
|
+
SAMPLE_API_KEY = "afb12412bdafe124124asfasfabebafeabwbawf1312342erbfasbb"
|
6
|
+
SAMPLE_APP_NAME = "tddelicious"
|
7
|
+
SAMPLE_BRANCH_NAME = "test"
|
8
|
+
SAMPLE_BUNDLER_VERSION = "Bundler version 1.10.10"
|
9
|
+
SAMPLE_DATE_TIME = "2011-03-11T08:43:02Z"
|
10
|
+
SAMPLE_EMAIL = "someone@example.com"
|
11
|
+
SAMPLE_FILE_PATH = "./my_user_file.png"
|
12
|
+
SAMPLE_FILE_PATH2 = "./my_user_file2.png"
|
13
|
+
SAMPLE_INVITATION_TOKEN = "TZce3NueiXp2lMTmaeRr"
|
14
|
+
SAMPLE_HEROKU_CONFIG = {"TDDIUM_API_KEY" => SAMPLE_API_KEY, "TDDIUM_USER_NAME" => SAMPLE_EMAIL}
|
15
|
+
SAMPLE_LICENSE_TEXT = "LICENSE"
|
16
|
+
SAMPLE_PASSWORD = "foobar"
|
17
|
+
SAMPLE_NEW_PASSWORD = "foobar2"
|
18
|
+
SAMPLE_REPORT_URL = "http://api.tddium.com/1/sessions/1/test_executions/report"
|
19
|
+
SAMPLE_RUBYGEMS_VERSION = "1.3.7"
|
20
|
+
SAMPLE_RUBY_VERSION = "ruby 1.8.7 (2010-08-16 patchlevel 302) [i686-darwin10.5.0]"
|
21
|
+
SAMPLE_RECURLY_URL = "https://tddium.recurly.com/account/1"
|
22
|
+
SAMPLE_SESSION_ID = 1
|
23
|
+
SAMPLE_SUITE_ID = 1
|
24
|
+
SAMPLE_USER_ID = 1
|
25
|
+
SAMPLE_ROLE = "member"
|
26
|
+
SAMPLE_ACCOUNT_NAME = "owner@example.com"
|
27
|
+
DEFAULT_TEST_PATTERN = "**/*_spec.rb"
|
28
|
+
SAMPLE_SUITE_PATTERN = "features/*.feature, spec/**/*_spec.rb"
|
29
|
+
CUSTOM_TEST_PATTERN = "**/cat_spec.rb"
|
30
|
+
SAMPLE_SSH_PUBKEY = "ssh-rsa 1234567890"
|
31
|
+
SAMPLE_SUITE_RESPONSE = {"repo_name" => SAMPLE_APP_NAME,
|
32
|
+
"branch" => SAMPLE_BRANCH_NAME,
|
33
|
+
"id" => SAMPLE_SUITE_ID,
|
34
|
+
"ruby_version"=>SAMPLE_RUBY_VERSION,
|
35
|
+
"rubygems_version"=>SAMPLE_RUBYGEMS_VERSION,
|
36
|
+
"bundler_version"=>SAMPLE_BUNDLER_VERSION,
|
37
|
+
"ci_ssh_pubkey" => SAMPLE_SSH_PUBKEY,
|
38
|
+
"test_pattern" => SAMPLE_SUITE_PATTERN}
|
39
|
+
SAMPLE_SUITES_RESPONSE = {"suites" => [SAMPLE_SUITE_RESPONSE]}
|
40
|
+
SAMPLE_TDDIUM_CONFIG_FILE = ".tddium.test"
|
41
|
+
SAMPLE_TDDIUM_DEPLOY_KEY_FILE = ".tddium-deploy-key.test"
|
42
|
+
SAMPLE_TEST_EXECUTION_STATS = "total 1, notstarted 0, started 1, passed 0, failed 0, pending 0, error 0", "start_time"
|
43
|
+
SAMPLE_USER_RESPONSE = {"status"=>0, "user"=>
|
44
|
+
{ "id"=>SAMPLE_USER_ID,
|
45
|
+
"api_key" => SAMPLE_API_KEY,
|
46
|
+
"email" => SAMPLE_EMAIL,
|
47
|
+
"created_at" => SAMPLE_DATE_TIME,
|
48
|
+
"account" => SAMPLE_EMAIL,
|
49
|
+
"recurly_url" => SAMPLE_RECURLY_URL}}
|
50
|
+
SAMPLE_ADDED_USER_RESPONSE = {"status"=>0, "user"=>
|
51
|
+
{ "id"=>SAMPLE_USER_ID,
|
52
|
+
"api_key" => SAMPLE_API_KEY,
|
53
|
+
"email" => SAMPLE_EMAIL,
|
54
|
+
"created_at" => SAMPLE_DATE_TIME,
|
55
|
+
"account" => SAMPLE_ACCOUNT_NAME,
|
56
|
+
"account_role" => SAMPLE_ROLE}}
|
57
|
+
SAMPLE_HEROKU_USER_RESPONSE = {"user"=>
|
58
|
+
{ "id"=>SAMPLE_USER_ID,
|
59
|
+
"api_key" => SAMPLE_API_KEY,
|
60
|
+
"email" => SAMPLE_EMAIL,
|
61
|
+
"created_at" => SAMPLE_DATE_TIME,
|
62
|
+
"heroku_needs_activation" => true,
|
63
|
+
"recurly_url" => SAMPLE_RECURLY_URL}}
|
64
|
+
PASSWORD_ERROR_EXPLANATION = "bad confirmation"
|
65
|
+
PASSWORD_ERROR_RESPONSE = {"status"=>1, "explanation"=> PASSWORD_ERROR_EXPLANATION}
|
66
|
+
SAMPLE_ACCOUNT_USAGE = {"status"=>0, "usage"=>"Usage: something"}
|
67
|
+
SAMPLE_START_TEST_EXECUTIONS_RESPONSE = {"status"=>0, "started"=>4, "report"=>SAMPLE_REPORT_URL}
|
68
|
+
SAMPLE_TEST_EXECUTIONS_PASSED_RESPONSE = {
|
69
|
+
"status"=>0,
|
70
|
+
"report"=>SAMPLE_REPORT_URL,
|
71
|
+
"tests"=>{"spec/mouse_spec.rb"=>{"finished" => true, "status"=>"passed"},
|
72
|
+
"spec/pig_spec.rb"=>{"finished" => true, "status"=>"passed"},
|
73
|
+
"spec/dog_spec.rb"=>{"finished" => true, "status"=>"passed"},
|
74
|
+
"spec/cat_spec.rb"=>{"finished" => true, "status"=>"passed"}}}
|
75
|
+
SAMPLE_TEST_EXECUTIONS_FINISHED_RESPONSE = {
|
76
|
+
"status"=>0,
|
77
|
+
"report"=>SAMPLE_REPORT_URL,
|
78
|
+
"tests"=>{"spec/mouse_spec.rb"=>{"finished" =>
|
79
|
+
true, "status"=>"pending"}, "spec/pig_spec.rb"=>{"finished" => true,
|
80
|
+
"status"=>"error"}, "spec/dog_spec.rb"=>{"finished" => true,
|
81
|
+
"status"=>"failed"}, "spec/cat_spec.rb"=>{"finished" => true,
|
82
|
+
"status"=>"passed"}}}
|
83
|
+
|
data/features/support/env.rb
CHANGED
@@ -5,3 +5,6 @@ require 'aruba/cucumber'
|
|
5
5
|
require 'pickle/parser'
|
6
6
|
|
7
7
|
ENV['PATH'] = "#{File.expand_path(File.dirname(__FILE__) + '/../../bin')}#{File::PATH_SEPARATOR}#{ENV['PATH']}"
|
8
|
+
#ENV['COVERAGE'] = "true"
|
9
|
+
ENV['COVERAGE_ROOT'] = "#{File.expand_path(File.dirname(__FILE__) + '/../../')}"
|
10
|
+
|
data/lib/tddium/commands/spec.rb
CHANGED
@@ -11,7 +11,10 @@ class Tddium
|
|
11
11
|
method_option :max_parallelism, :type => :numeric, :default => nil
|
12
12
|
method_option :test_pattern, :type => :string, :default => nil
|
13
13
|
method_option :force, :type => :boolean, :default => false
|
14
|
+
method_option :machine, :type => :boolean, :default => false
|
14
15
|
def spec
|
16
|
+
machine_data = {}
|
17
|
+
|
15
18
|
set_shell
|
16
19
|
set_default_environment
|
17
20
|
git_version_ok
|
@@ -43,85 +46,88 @@ class Tddium
|
|
43
46
|
start_time = Time.now
|
44
47
|
|
45
48
|
# Call the API to get the suite and its tests
|
46
|
-
|
47
|
-
suite_details = call_api(:get, current_suite_path)
|
48
|
-
|
49
|
-
exit_failure Text::Error::GIT_REPO_NOT_READY unless suite_details["suite"]["repoman_current"]
|
50
|
-
|
51
|
-
# Push the latest code to git
|
52
|
-
exit_failure Text::Error::GIT_PUSH_FAILED unless update_git_remote_and_push(suite_details)
|
49
|
+
suite_details = call_api(:get, current_suite_path)
|
53
50
|
|
54
|
-
|
55
|
-
new_session = call_api(:post, Api::Path::SESSIONS)
|
56
|
-
session_id = new_session["session"]["id"]
|
51
|
+
exit_failure Text::Error::GIT_REPO_NOT_READY unless suite_details["suite"]["repoman_current"]
|
57
52
|
|
58
|
-
|
59
|
-
|
53
|
+
# Push the latest code to git
|
54
|
+
exit_failure Text::Error::GIT_PUSH_FAILED unless update_git_remote_and_push(suite_details)
|
60
55
|
|
61
|
-
|
62
|
-
|
63
|
-
|
64
|
-
say Text::Process::STARTING_TEST % start_test_executions["started"]
|
56
|
+
# Create a session
|
57
|
+
new_session = call_api(:post, Api::Path::SESSIONS)
|
58
|
+
machine_data[:session_id] = session_id = new_session["session"]["id"]
|
65
59
|
|
66
|
-
|
67
|
-
|
68
|
-
test_statuses = Hash.new(0)
|
60
|
+
# Register the tests
|
61
|
+
call_api(:post, "#{Api::Path::SESSIONS}/#{session_id}/#{Api::Path::REGISTER_TEST_EXECUTIONS}", {:suite_id => current_suite_id, :test_pattern => test_pattern})
|
69
62
|
|
70
|
-
|
71
|
-
|
72
|
-
|
73
|
-
|
74
|
-
|
75
|
-
|
76
|
-
|
77
|
-
|
78
|
-
|
79
|
-
|
80
|
-
|
81
|
-
|
63
|
+
# Start the tests
|
64
|
+
start_test_executions = call_api(:post, "#{Api::Path::SESSIONS}/#{session_id}/#{Api::Path::START_TEST_EXECUTIONS}", test_execution_params)
|
65
|
+
|
66
|
+
say Text::Process::STARTING_TEST % start_test_executions["started"]
|
67
|
+
|
68
|
+
tests_not_finished_yet = true
|
69
|
+
finished_tests = {}
|
70
|
+
test_statuses = Hash.new(0)
|
71
|
+
|
72
|
+
say Text::Process::CHECK_TEST_REPORT % start_test_executions["report"] unless options[:machine]
|
73
|
+
say Text::Process::TERMINATE_INSTRUCTION unless options[:machine]
|
74
|
+
while tests_not_finished_yet do
|
75
|
+
# Poll the API to check the status
|
76
|
+
current_test_executions = call_api(:get, "#{Api::Path::SESSIONS}/#{session_id}/#{Api::Path::TEST_EXECUTIONS}")
|
77
|
+
|
78
|
+
# Catch Ctrl-C to interrupt the test
|
79
|
+
Signal.trap(:INT) do
|
80
|
+
say Text::Process::INTERRUPT
|
81
|
+
say Text::Process::CHECK_TEST_STATUS
|
82
|
+
tests_not_finished_yet = false
|
83
|
+
end
|
82
84
|
|
83
|
-
|
84
|
-
|
85
|
-
|
86
|
-
|
87
|
-
|
88
|
-
|
89
|
-
|
90
|
-
|
91
|
-
|
92
|
-
|
93
|
-
|
94
|
-
|
95
|
-
|
96
|
-
|
97
|
-
|
98
|
-
end
|
85
|
+
# Print out the progress of running tests
|
86
|
+
current_test_executions["tests"].each do |test_name, result_params|
|
87
|
+
test_status = result_params["status"]
|
88
|
+
if result_params["finished"] && !finished_tests[test_name]
|
89
|
+
message = case test_status
|
90
|
+
when "passed" then [".", :green, false]
|
91
|
+
when "failed" then ["F", :red, false]
|
92
|
+
when "error" then ["E", nil, false]
|
93
|
+
when "pending" then ["*", :yellow, false]
|
94
|
+
when "skipped" then [".", :yellow, false]
|
95
|
+
else [".", nil, false]
|
96
|
+
end
|
97
|
+
finished_tests[test_name] = test_status
|
98
|
+
test_statuses[test_status] += 1
|
99
|
+
say *message
|
99
100
|
end
|
101
|
+
end
|
100
102
|
|
101
|
-
|
102
|
-
|
103
|
-
|
104
|
-
|
105
|
-
|
106
|
-
end
|
103
|
+
# If all tests finished, exit the loop else sleep
|
104
|
+
if finished_tests.size == current_test_executions["tests"].size
|
105
|
+
tests_not_finished_yet = false
|
106
|
+
else
|
107
|
+
sleep(Default::SLEEP_TIME_BETWEEN_POLLS)
|
107
108
|
end
|
109
|
+
end
|
108
110
|
|
109
|
-
|
110
|
-
|
111
|
-
|
112
|
-
|
113
|
-
|
114
|
-
|
115
|
-
|
116
|
-
|
117
|
-
|
118
|
-
|
119
|
-
|
120
|
-
|
121
|
-
|
122
|
-
|
123
|
-
|
124
|
-
|
111
|
+
# Print out the result
|
112
|
+
say ""
|
113
|
+
say Text::Process::FINISHED_TEST % (Time.now - start_time)
|
114
|
+
say "#{finished_tests.size} tests, #{test_statuses["failed"]} failures, #{test_statuses["error"]} errors, #{test_statuses["pending"]} pending"
|
115
|
+
|
116
|
+
# Save the spec options
|
117
|
+
write_suite(suite_details["suite"].merge({"id" => current_suite_id}),
|
118
|
+
{"user_data_file" => user_data_file_path,
|
119
|
+
"max_parallelism" => max_parallelism,
|
120
|
+
"test_pattern" => test_pattern})
|
121
|
+
|
122
|
+
exit_failure if test_statuses["failed"] > 0 || test_statuses["error"] > 0
|
123
|
+
rescue TddiumClient::Error::Base
|
124
|
+
exit_failure "Failed due to error communicating with Tddium"
|
125
|
+
rescue RuntimeError => e
|
126
|
+
exit_failure "Failed due to internal error: #{e.inspect} #{e.backtrace}"
|
127
|
+
ensure
|
128
|
+
if options[:machine] && machine_data.size > 0
|
129
|
+
say "%%%% TDDIUM CI DATA %%%%"
|
130
|
+
say YAML.dump(machine_data)
|
125
131
|
end
|
126
132
|
end
|
127
133
|
end
|
data/lib/tddium/version.rb
CHANGED
data/tddium.gemspec
CHANGED
@@ -35,8 +35,8 @@ EOF
|
|
35
35
|
s.add_runtime_dependency("thor")
|
36
36
|
s.add_runtime_dependency("highline")
|
37
37
|
s.add_runtime_dependency("json")
|
38
|
-
s.add_runtime_dependency("tddium_client", "~> 0.1.
|
39
|
-
s.add_runtime_dependency("tddium_reporting", ">=0.0.
|
38
|
+
s.add_runtime_dependency("tddium_client", "~> 0.1.1")
|
39
|
+
s.add_runtime_dependency("tddium_reporting", ">=0.0.6")
|
40
40
|
s.add_runtime_dependency("bundler")
|
41
41
|
|
42
42
|
s.add_development_dependency("rspec")
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: tddium-preview
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.9.
|
4
|
+
version: 0.9.5
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -13,7 +13,7 @@ date: 2011-10-06 00:00:00.000000000 Z
|
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: thor
|
16
|
-
requirement: &
|
16
|
+
requirement: &13163640 !ruby/object:Gem::Requirement
|
17
17
|
none: false
|
18
18
|
requirements:
|
19
19
|
- - ! '>='
|
@@ -21,10 +21,10 @@ dependencies:
|
|
21
21
|
version: '0'
|
22
22
|
type: :runtime
|
23
23
|
prerelease: false
|
24
|
-
version_requirements: *
|
24
|
+
version_requirements: *13163640
|
25
25
|
- !ruby/object:Gem::Dependency
|
26
26
|
name: highline
|
27
|
-
requirement: &
|
27
|
+
requirement: &13162900 !ruby/object:Gem::Requirement
|
28
28
|
none: false
|
29
29
|
requirements:
|
30
30
|
- - ! '>='
|
@@ -32,10 +32,10 @@ dependencies:
|
|
32
32
|
version: '0'
|
33
33
|
type: :runtime
|
34
34
|
prerelease: false
|
35
|
-
version_requirements: *
|
35
|
+
version_requirements: *13162900
|
36
36
|
- !ruby/object:Gem::Dependency
|
37
37
|
name: json
|
38
|
-
requirement: &
|
38
|
+
requirement: &13162160 !ruby/object:Gem::Requirement
|
39
39
|
none: false
|
40
40
|
requirements:
|
41
41
|
- - ! '>='
|
@@ -43,32 +43,32 @@ dependencies:
|
|
43
43
|
version: '0'
|
44
44
|
type: :runtime
|
45
45
|
prerelease: false
|
46
|
-
version_requirements: *
|
46
|
+
version_requirements: *13162160
|
47
47
|
- !ruby/object:Gem::Dependency
|
48
48
|
name: tddium_client
|
49
|
-
requirement: &
|
49
|
+
requirement: &13161400 !ruby/object:Gem::Requirement
|
50
50
|
none: false
|
51
51
|
requirements:
|
52
52
|
- - ~>
|
53
53
|
- !ruby/object:Gem::Version
|
54
|
-
version: 0.1.
|
54
|
+
version: 0.1.1
|
55
55
|
type: :runtime
|
56
56
|
prerelease: false
|
57
|
-
version_requirements: *
|
57
|
+
version_requirements: *13161400
|
58
58
|
- !ruby/object:Gem::Dependency
|
59
59
|
name: tddium_reporting
|
60
|
-
requirement: &
|
60
|
+
requirement: &13160780 !ruby/object:Gem::Requirement
|
61
61
|
none: false
|
62
62
|
requirements:
|
63
63
|
- - ! '>='
|
64
64
|
- !ruby/object:Gem::Version
|
65
|
-
version: 0.0.
|
65
|
+
version: 0.0.6
|
66
66
|
type: :runtime
|
67
67
|
prerelease: false
|
68
|
-
version_requirements: *
|
68
|
+
version_requirements: *13160780
|
69
69
|
- !ruby/object:Gem::Dependency
|
70
70
|
name: bundler
|
71
|
-
requirement: &
|
71
|
+
requirement: &13160380 !ruby/object:Gem::Requirement
|
72
72
|
none: false
|
73
73
|
requirements:
|
74
74
|
- - ! '>='
|
@@ -76,10 +76,10 @@ dependencies:
|
|
76
76
|
version: '0'
|
77
77
|
type: :runtime
|
78
78
|
prerelease: false
|
79
|
-
version_requirements: *
|
79
|
+
version_requirements: *13160380
|
80
80
|
- !ruby/object:Gem::Dependency
|
81
81
|
name: rspec
|
82
|
-
requirement: &
|
82
|
+
requirement: &13159640 !ruby/object:Gem::Requirement
|
83
83
|
none: false
|
84
84
|
requirements:
|
85
85
|
- - ! '>='
|
@@ -87,10 +87,10 @@ dependencies:
|
|
87
87
|
version: '0'
|
88
88
|
type: :development
|
89
89
|
prerelease: false
|
90
|
-
version_requirements: *
|
90
|
+
version_requirements: *13159640
|
91
91
|
- !ruby/object:Gem::Dependency
|
92
92
|
name: fakefs
|
93
|
-
requirement: &
|
93
|
+
requirement: &13158920 !ruby/object:Gem::Requirement
|
94
94
|
none: false
|
95
95
|
requirements:
|
96
96
|
- - ! '>='
|
@@ -98,10 +98,10 @@ dependencies:
|
|
98
98
|
version: '0'
|
99
99
|
type: :development
|
100
100
|
prerelease: false
|
101
|
-
version_requirements: *
|
101
|
+
version_requirements: *13158920
|
102
102
|
- !ruby/object:Gem::Dependency
|
103
103
|
name: simplecov
|
104
|
-
requirement: &
|
104
|
+
requirement: &13158240 !ruby/object:Gem::Requirement
|
105
105
|
none: false
|
106
106
|
requirements:
|
107
107
|
- - ! '>='
|
@@ -109,10 +109,10 @@ dependencies:
|
|
109
109
|
version: '0'
|
110
110
|
type: :development
|
111
111
|
prerelease: false
|
112
|
-
version_requirements: *
|
112
|
+
version_requirements: *13158240
|
113
113
|
- !ruby/object:Gem::Dependency
|
114
114
|
name: rake
|
115
|
-
requirement: &
|
115
|
+
requirement: &13157580 !ruby/object:Gem::Requirement
|
116
116
|
none: false
|
117
117
|
requirements:
|
118
118
|
- - ! '>='
|
@@ -120,7 +120,7 @@ dependencies:
|
|
120
120
|
version: '0'
|
121
121
|
type: :development
|
122
122
|
prerelease: false
|
123
|
-
version_requirements: *
|
123
|
+
version_requirements: *13157580
|
124
124
|
description: ! 'tddium runs your rspec, cucumber, and test::unit tests in our managed
|
125
125
|
|
126
126
|
cloud environment. You can run tests by hand, or enable our hosted CI to watch
|
@@ -167,6 +167,7 @@ files:
|
|
167
167
|
- features/step_definitions/login_steps.rb
|
168
168
|
- features/step_definitions/mimic_steps.rb
|
169
169
|
- features/step_definitions/password_steps.rb
|
170
|
+
- features/step_definitions/session_steps.rb
|
170
171
|
- features/step_definitions/suite_steps.rb
|
171
172
|
- features/step_definitions/upgrade_steps.rb
|
172
173
|
- features/suite_command.feature
|