ci_reporter 1.0 → 1.6.5
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/History.txt +141 -1
- data/LICENSE.txt +21 -0
- data/Manifest.txt +10 -0
- data/README.txt +40 -20
- data/Rakefile +93 -25
- data/lib/ci/reporter/core.rb +5 -1
- data/lib/ci/reporter/cucumber.rb +125 -0
- data/lib/ci/reporter/rake/cucumber.rb +19 -0
- data/lib/ci/reporter/rake/cucumber_loader.rb +6 -0
- data/lib/ci/reporter/rake/rspec.rb +18 -2
- data/lib/ci/reporter/rake/rspec_loader.rb +6 -7
- data/lib/ci/reporter/rake/test_unit.rb +8 -1
- data/lib/ci/reporter/rake/test_unit_loader.rb +21 -7
- data/lib/ci/reporter/rake/utils.rb +14 -0
- data/lib/ci/reporter/report_manager.rb +40 -2
- data/lib/ci/reporter/rspec.rb +154 -30
- data/lib/ci/reporter/test_suite.rb +81 -33
- data/lib/ci/reporter/test_unit.rb +42 -12
- data/lib/ci/reporter/version.rb +5 -0
- data/spec/ci/reporter/cucumber_spec.rb +230 -0
- data/spec/ci/reporter/output_capture_spec.rb +57 -0
- data/spec/ci/reporter/rake/rake_tasks_spec.rb +100 -0
- data/spec/ci/reporter/report_manager_spec.rb +14 -10
- data/spec/ci/reporter/rspec_spec.rb +136 -23
- data/spec/ci/reporter/test_suite_spec.rb +61 -26
- data/spec/ci/reporter/test_unit_spec.rb +94 -17
- data/spec/spec_helper.rb +16 -4
- data/stub.rake +14 -0
- data/tasks/ci_reporter.rake +7 -1
- metadata +117 -55
|
@@ -1,25 +1,35 @@
|
|
|
1
|
+
# Copyright (c) 2006-2010 Nick Sieger <nicksieger@gmail.com>
|
|
2
|
+
# See the file LICENSE.txt included with the distribution for
|
|
3
|
+
# software license details.
|
|
4
|
+
|
|
1
5
|
require File.dirname(__FILE__) + "/../../spec_helper.rb"
|
|
2
6
|
require 'rexml/document'
|
|
3
7
|
|
|
4
|
-
|
|
5
|
-
|
|
8
|
+
describe "A TestSuite" do
|
|
9
|
+
before(:each) do
|
|
6
10
|
@suite = CI::Reporter::TestSuite.new("example suite")
|
|
7
11
|
end
|
|
8
12
|
|
|
9
|
-
|
|
13
|
+
it "should collect timings when start and finish are invoked in sequence" do
|
|
10
14
|
@suite.start
|
|
11
15
|
@suite.finish
|
|
12
|
-
@suite.time.
|
|
16
|
+
@suite.time.should >= 0
|
|
13
17
|
end
|
|
14
18
|
|
|
15
|
-
|
|
19
|
+
it "should aggregate tests" do
|
|
16
20
|
@suite.start
|
|
17
21
|
@suite.testcases << CI::Reporter::TestCase.new("example test")
|
|
18
22
|
@suite.finish
|
|
19
23
|
@suite.tests.should == 1
|
|
20
24
|
end
|
|
25
|
+
|
|
26
|
+
it "should stringify the name for cases when the object passed in is not a string" do
|
|
27
|
+
name = Object.new
|
|
28
|
+
def name.to_s; "object name"; end
|
|
29
|
+
CI::Reporter::TestSuite.new(name).name.should == "object name"
|
|
30
|
+
end
|
|
21
31
|
|
|
22
|
-
|
|
32
|
+
it "should indicate number of failures and errors" do
|
|
23
33
|
failure = mock("failure")
|
|
24
34
|
failure.stub!(:failure?).and_return true
|
|
25
35
|
failure.stub!(:error?).and_return false
|
|
@@ -31,20 +41,20 @@ context "A TestSuite" do
|
|
|
31
41
|
@suite.start
|
|
32
42
|
@suite.testcases << CI::Reporter::TestCase.new("example test")
|
|
33
43
|
@suite.testcases << CI::Reporter::TestCase.new("failure test")
|
|
34
|
-
@suite.testcases.last.
|
|
44
|
+
@suite.testcases.last.failures << failure
|
|
35
45
|
@suite.testcases << CI::Reporter::TestCase.new("error test")
|
|
36
|
-
@suite.testcases.last.
|
|
46
|
+
@suite.testcases.last.failures << error
|
|
37
47
|
@suite.finish
|
|
38
48
|
@suite.tests.should == 3
|
|
39
49
|
@suite.failures.should == 1
|
|
40
50
|
@suite.errors.should == 1
|
|
41
51
|
end
|
|
42
|
-
|
|
43
52
|
end
|
|
44
53
|
|
|
45
|
-
|
|
46
|
-
|
|
54
|
+
describe "TestSuite xml" do
|
|
55
|
+
before(:each) do
|
|
47
56
|
@suite = CI::Reporter::TestSuite.new("example suite")
|
|
57
|
+
@suite.assertions = 11
|
|
48
58
|
begin
|
|
49
59
|
raise StandardError, "an exception occurred"
|
|
50
60
|
rescue => e
|
|
@@ -52,7 +62,7 @@ context "TestSuite xml" do
|
|
|
52
62
|
end
|
|
53
63
|
end
|
|
54
64
|
|
|
55
|
-
|
|
65
|
+
it "should contain Ant/JUnit-formatted description of entire suite" do
|
|
56
66
|
failure = mock("failure")
|
|
57
67
|
failure.stub!(:failure?).and_return true
|
|
58
68
|
failure.stub!(:error?).and_return false
|
|
@@ -69,23 +79,48 @@ context "TestSuite xml" do
|
|
|
69
79
|
|
|
70
80
|
@suite.start
|
|
71
81
|
@suite.testcases << CI::Reporter::TestCase.new("example test")
|
|
82
|
+
@suite.testcases << CI::Reporter::TestCase.new("skipped test").tap {|tc| tc.skipped = true }
|
|
72
83
|
@suite.testcases << CI::Reporter::TestCase.new("failure test")
|
|
73
|
-
@suite.testcases.last.
|
|
84
|
+
@suite.testcases.last.failures << failure
|
|
74
85
|
@suite.testcases << CI::Reporter::TestCase.new("error test")
|
|
75
|
-
@suite.testcases.last.
|
|
86
|
+
@suite.testcases.last.failures << error
|
|
76
87
|
@suite.finish
|
|
77
88
|
|
|
78
89
|
xml = @suite.to_xml
|
|
79
90
|
doc = REXML::Document.new(xml)
|
|
80
|
-
testsuite = doc.root.elements.to_a(
|
|
91
|
+
testsuite = doc.root.elements.to_a("/testsuite")
|
|
81
92
|
testsuite.length.should == 1
|
|
82
93
|
testsuite = testsuite.first
|
|
94
|
+
testsuite.attributes["name"].should == "example suite"
|
|
95
|
+
testsuite.attributes["assertions"].should == "11"
|
|
83
96
|
|
|
84
|
-
testcases = testsuite.elements.to_a(
|
|
85
|
-
testcases.length.should ==
|
|
97
|
+
testcases = testsuite.elements.to_a("testcase")
|
|
98
|
+
testcases.length.should == 4
|
|
86
99
|
end
|
|
87
|
-
|
|
88
|
-
|
|
100
|
+
|
|
101
|
+
it "should contain full exception type and message in location element" do
|
|
102
|
+
failure = mock("failure")
|
|
103
|
+
failure.stub!(:failure?).and_return true
|
|
104
|
+
failure.stub!(:error?).and_return false
|
|
105
|
+
failure.stub!(:name).and_return "failure"
|
|
106
|
+
failure.stub!(:message).and_return "There was a failure"
|
|
107
|
+
failure.stub!(:location).and_return @exception.backtrace.join("\n")
|
|
108
|
+
|
|
109
|
+
@suite.start
|
|
110
|
+
@suite.testcases << CI::Reporter::TestCase.new("example test")
|
|
111
|
+
@suite.testcases << CI::Reporter::TestCase.new("failure test")
|
|
112
|
+
@suite.testcases.last.failures << failure
|
|
113
|
+
@suite.finish
|
|
114
|
+
|
|
115
|
+
xml = @suite.to_xml
|
|
116
|
+
doc = REXML::Document.new(xml)
|
|
117
|
+
elem = doc.root.elements.to_a("/testsuite/testcase[@name='failure test']/failure").first
|
|
118
|
+
location = elem.texts.join
|
|
119
|
+
location.should =~ Regexp.new(failure.message)
|
|
120
|
+
location.should =~ Regexp.new(failure.name)
|
|
121
|
+
end
|
|
122
|
+
|
|
123
|
+
it "should filter attributes properly for invalid characters" do
|
|
89
124
|
failure = mock("failure")
|
|
90
125
|
failure.stub!(:failure?).and_return true
|
|
91
126
|
failure.stub!(:error?).and_return false
|
|
@@ -95,22 +130,22 @@ context "TestSuite xml" do
|
|
|
95
130
|
|
|
96
131
|
@suite.start
|
|
97
132
|
@suite.testcases << CI::Reporter::TestCase.new("failure test")
|
|
98
|
-
@suite.testcases.last.
|
|
133
|
+
@suite.testcases.last.failures << failure
|
|
99
134
|
@suite.finish
|
|
100
135
|
|
|
101
136
|
xml = @suite.to_xml
|
|
102
|
-
xml.
|
|
137
|
+
xml.should =~ %r/message="There was a <failure>\.\.\."/
|
|
103
138
|
end
|
|
104
139
|
end
|
|
105
140
|
|
|
106
|
-
|
|
107
|
-
|
|
141
|
+
describe "A TestCase" do
|
|
142
|
+
before(:each) do
|
|
108
143
|
@tc = CI::Reporter::TestCase.new("example test")
|
|
109
144
|
end
|
|
110
145
|
|
|
111
|
-
|
|
146
|
+
it "should collect timings when start and finish are invoked in sequence" do
|
|
112
147
|
@tc.start
|
|
113
148
|
@tc.finish
|
|
114
|
-
@tc.time.
|
|
149
|
+
@tc.time.should >= 0
|
|
115
150
|
end
|
|
116
|
-
end
|
|
151
|
+
end
|
|
@@ -1,16 +1,22 @@
|
|
|
1
|
+
# Copyright (c) 2006-2010 Nick Sieger <nicksieger@gmail.com>
|
|
2
|
+
# See the file LICENSE.txt included with the distribution for
|
|
3
|
+
# software license details.
|
|
4
|
+
|
|
1
5
|
require File.dirname(__FILE__) + "/../../spec_helper.rb"
|
|
2
6
|
|
|
3
|
-
|
|
4
|
-
|
|
7
|
+
describe "The TestUnit reporter" do
|
|
8
|
+
before(:each) do
|
|
5
9
|
@report_mgr = mock("report manager")
|
|
6
10
|
@testunit = CI::Reporter::TestUnit.new(nil, @report_mgr)
|
|
11
|
+
@result = mock("result")
|
|
12
|
+
@result.stub!(:assertion_count).and_return(7)
|
|
7
13
|
end
|
|
8
14
|
|
|
9
|
-
|
|
15
|
+
it "should build suites based on adjacent tests with the same class name" do
|
|
10
16
|
@suite = nil
|
|
11
17
|
@report_mgr.should_receive(:write_report).once.and_return {|suite| @suite = suite }
|
|
12
18
|
|
|
13
|
-
@testunit.started(
|
|
19
|
+
@testunit.started(@result)
|
|
14
20
|
@testunit.test_started("test_one(TestCaseClass)")
|
|
15
21
|
@testunit.test_finished("test_one(TestCaseClass)")
|
|
16
22
|
@testunit.test_started("test_two(TestCaseClass)")
|
|
@@ -20,18 +26,18 @@ context "The TestUnit reporter" do
|
|
|
20
26
|
@suite.name.should == "TestCaseClass"
|
|
21
27
|
@suite.testcases.length.should == 2
|
|
22
28
|
@suite.testcases.first.name.should == "test_one"
|
|
23
|
-
@suite.testcases.first.
|
|
24
|
-
@suite.testcases.first.
|
|
29
|
+
@suite.testcases.first.should_not be_failure
|
|
30
|
+
@suite.testcases.first.should_not be_error
|
|
25
31
|
@suite.testcases.last.name.should == "test_two"
|
|
26
|
-
@suite.testcases.last.
|
|
27
|
-
@suite.testcases.last.
|
|
32
|
+
@suite.testcases.last.should_not be_failure
|
|
33
|
+
@suite.testcases.last.should_not be_error
|
|
28
34
|
end
|
|
29
35
|
|
|
30
|
-
|
|
36
|
+
it "should build two suites when encountering different class names" do
|
|
31
37
|
@suites = []
|
|
32
38
|
@report_mgr.should_receive(:write_report).twice.and_return {|suite| @suites << suite }
|
|
33
39
|
|
|
34
|
-
@testunit.started(
|
|
40
|
+
@testunit.started(@result)
|
|
35
41
|
@testunit.test_started("test_one(TestCaseClass)")
|
|
36
42
|
@testunit.test_finished("test_one(TestCaseClass)")
|
|
37
43
|
@testunit.test_started("test_two(AnotherTestCaseClass)")
|
|
@@ -41,12 +47,46 @@ context "The TestUnit reporter" do
|
|
|
41
47
|
@suites.first.name.should == "TestCaseClass"
|
|
42
48
|
@suites.first.testcases.length.should == 1
|
|
43
49
|
@suites.first.testcases.first.name.should == "test_one"
|
|
50
|
+
@suites.first.testcases.first.assertions.should == 7
|
|
51
|
+
|
|
44
52
|
@suites.last.name.should == "AnotherTestCaseClass"
|
|
45
53
|
@suites.last.testcases.length.should == 1
|
|
46
54
|
@suites.last.testcases.first.name.should == "test_two"
|
|
55
|
+
@suites.last.testcases.first.assertions.should == 0
|
|
47
56
|
end
|
|
48
57
|
|
|
49
|
-
|
|
58
|
+
it "should record assertion counts during test run" do
|
|
59
|
+
@suite = nil
|
|
60
|
+
@report_mgr.should_receive(:write_report).and_return {|suite| @suite = suite }
|
|
61
|
+
|
|
62
|
+
@testunit.started(@result)
|
|
63
|
+
@testunit.test_started("test_one(TestCaseClass)")
|
|
64
|
+
@testunit.test_finished("test_one(TestCaseClass)")
|
|
65
|
+
@testunit.finished(10)
|
|
66
|
+
|
|
67
|
+
@suite.assertions.should == 7
|
|
68
|
+
@suite.testcases.last.assertions.should == 7
|
|
69
|
+
end
|
|
70
|
+
|
|
71
|
+
it "should add failures to testcases when encountering a fault" do
|
|
72
|
+
@failure = Test::Unit::Failure.new("test_one(TestCaseClass)", "somewhere:10", "it failed")
|
|
73
|
+
|
|
74
|
+
@suite = nil
|
|
75
|
+
@report_mgr.should_receive(:write_report).once.and_return {|suite| @suite = suite }
|
|
76
|
+
|
|
77
|
+
@testunit.started(@result)
|
|
78
|
+
@testunit.test_started("test_one(TestCaseClass)")
|
|
79
|
+
@testunit.fault(@failure)
|
|
80
|
+
@testunit.test_finished("test_one(TestCaseClass)")
|
|
81
|
+
@testunit.finished(10)
|
|
82
|
+
|
|
83
|
+
@suite.name.should == "TestCaseClass"
|
|
84
|
+
@suite.testcases.length.should == 1
|
|
85
|
+
@suite.testcases.first.name.should == "test_one"
|
|
86
|
+
@suite.testcases.first.should be_failure
|
|
87
|
+
end
|
|
88
|
+
|
|
89
|
+
it "should add errors to testcases when encountering a fault" do
|
|
50
90
|
begin
|
|
51
91
|
raise StandardError, "error"
|
|
52
92
|
rescue => e
|
|
@@ -56,20 +96,57 @@ context "The TestUnit reporter" do
|
|
|
56
96
|
@suite = nil
|
|
57
97
|
@report_mgr.should_receive(:write_report).once.and_return {|suite| @suite = suite }
|
|
58
98
|
|
|
59
|
-
@testunit.started(
|
|
99
|
+
@testunit.started(@result)
|
|
60
100
|
@testunit.test_started("test_one(TestCaseClass)")
|
|
61
101
|
@testunit.test_finished("test_one(TestCaseClass)")
|
|
62
102
|
@testunit.test_started("test_two(TestCaseClass)")
|
|
63
103
|
@testunit.fault(@error)
|
|
104
|
+
@testunit.test_finished("test_two(TestCaseClass)")
|
|
64
105
|
@testunit.finished(10)
|
|
65
106
|
|
|
66
107
|
@suite.name.should == "TestCaseClass"
|
|
67
108
|
@suite.testcases.length.should == 2
|
|
68
109
|
@suite.testcases.first.name.should == "test_one"
|
|
69
|
-
@suite.testcases.first.
|
|
70
|
-
@suite.testcases.first.
|
|
110
|
+
@suite.testcases.first.should_not be_failure
|
|
111
|
+
@suite.testcases.first.should_not be_error
|
|
71
112
|
@suite.testcases.last.name.should == "test_two"
|
|
72
|
-
@suite.testcases.last.
|
|
73
|
-
@suite.testcases.last.
|
|
113
|
+
@suite.testcases.last.should_not be_failure
|
|
114
|
+
@suite.testcases.last.should be_error
|
|
115
|
+
end
|
|
116
|
+
|
|
117
|
+
it "should add multiple failures to a testcase" do
|
|
118
|
+
@failure1 = Test::Unit::Failure.new("test_one(TestCaseClass)", "somewhere:10", "it failed")
|
|
119
|
+
@failure2 = Test::Unit::Failure.new("test_one(TestCaseClass)", "somewhere:12", "it failed again in teardown")
|
|
120
|
+
|
|
121
|
+
@suite = nil
|
|
122
|
+
@report_mgr.should_receive(:write_report).once.and_return {|suite| @suite = suite }
|
|
123
|
+
|
|
124
|
+
@testunit.started(@result)
|
|
125
|
+
@testunit.test_started("test_one(TestCaseClass)")
|
|
126
|
+
@testunit.fault(@failure1)
|
|
127
|
+
@testunit.fault(@failure2)
|
|
128
|
+
@testunit.test_finished("test_one(TestCaseClass)")
|
|
129
|
+
@testunit.finished(10)
|
|
130
|
+
|
|
131
|
+
@suite.name.should == "TestCaseClass"
|
|
132
|
+
@suite.testcases.length.should == 1
|
|
133
|
+
@suite.testcases.first.name.should == "test_one"
|
|
134
|
+
@suite.testcases.first.should be_failure
|
|
135
|
+
@suite.testcases.first.failures.size.should == 2
|
|
136
|
+
@suite.failures.should == 2
|
|
137
|
+
end
|
|
138
|
+
|
|
139
|
+
it "should count test case names that don't conform to the standard pattern" do
|
|
140
|
+
@suite = nil
|
|
141
|
+
@report_mgr.should_receive(:write_report).once.and_return {|suite| @suite = suite }
|
|
142
|
+
|
|
143
|
+
@testunit.started(@result)
|
|
144
|
+
@testunit.test_started("some unknown test")
|
|
145
|
+
@testunit.test_finished("some unknown test")
|
|
146
|
+
@testunit.finished(10)
|
|
147
|
+
|
|
148
|
+
@suite.name.should == "unknown-1"
|
|
149
|
+
@suite.testcases.length.should == 1
|
|
150
|
+
@suite.testcases.first.name.should == "some unknown test"
|
|
74
151
|
end
|
|
75
|
-
end
|
|
152
|
+
end
|
data/spec/spec_helper.rb
CHANGED
|
@@ -1,9 +1,21 @@
|
|
|
1
|
+
# Copyright (c) 2006-2010 Nick Sieger <nicksieger@gmail.com>
|
|
2
|
+
# See the file LICENSE.txt included with the distribution for
|
|
3
|
+
# software license details.
|
|
4
|
+
|
|
1
5
|
require 'rubygems'
|
|
2
|
-
|
|
3
|
-
require '
|
|
4
|
-
|
|
6
|
+
begin
|
|
7
|
+
require 'rspec'
|
|
8
|
+
rescue LoadError
|
|
9
|
+
require 'spec'
|
|
10
|
+
end
|
|
11
|
+
|
|
12
|
+
unless defined?(CI_REPORTER_LIB)
|
|
13
|
+
CI_REPORTER_LIB = File.expand_path(File.dirname(__FILE__) + "/../lib")
|
|
14
|
+
$: << CI_REPORTER_LIB
|
|
15
|
+
end
|
|
16
|
+
|
|
5
17
|
require 'ci/reporter/core'
|
|
6
18
|
require 'ci/reporter/test_unit'
|
|
7
19
|
require 'ci/reporter/rspec'
|
|
8
20
|
|
|
9
|
-
REPORTS_DIR = File.dirname(__FILE__) + "/reports"
|
|
21
|
+
REPORTS_DIR = File.dirname(__FILE__) + "/reports" unless defined?(REPORTS_DIR)
|
data/stub.rake
ADDED
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
# Copyright (c) 2006-2010 Nick Sieger <nicksieger@gmail.com>
|
|
2
|
+
# See the file LICENSE.txt included with the distribution for
|
|
3
|
+
# software license details.
|
|
4
|
+
#
|
|
5
|
+
# Use this stub rakefile as a wrapper around a regular Rakefile. Run in the
|
|
6
|
+
# same directory as the real Rakefile.
|
|
7
|
+
#
|
|
8
|
+
# rake -f /path/to/ci_reporter/lib/ci/reporter/rake/stub.rake ci:setup:rspec default
|
|
9
|
+
#
|
|
10
|
+
|
|
11
|
+
load File.dirname(__FILE__) + '/lib/ci/reporter/rake/rspec.rb'
|
|
12
|
+
load File.dirname(__FILE__) + '/lib/ci/reporter/rake/cucumber.rb'
|
|
13
|
+
load File.dirname(__FILE__) + '/lib/ci/reporter/rake/test_unit.rb'
|
|
14
|
+
load 'Rakefile'
|
data/tasks/ci_reporter.rake
CHANGED
|
@@ -1,12 +1,18 @@
|
|
|
1
|
+
# Copyright (c) 2006-2010 Nick Sieger <nicksieger@gmail.com>
|
|
2
|
+
# See the file LICENSE.txt included with the distribution for
|
|
3
|
+
# software license details.
|
|
4
|
+
|
|
1
5
|
begin
|
|
2
6
|
gem 'ci_reporter'
|
|
3
|
-
rescue
|
|
7
|
+
rescue Gem::LoadError
|
|
4
8
|
$: << File.dirname(__FILE__) + "/../lib"
|
|
5
9
|
end
|
|
6
10
|
require 'ci/reporter/rake/rspec'
|
|
11
|
+
require 'ci/reporter/rake/cucumber'
|
|
7
12
|
require 'ci/reporter/rake/test_unit'
|
|
8
13
|
|
|
9
14
|
namespace :ci do
|
|
10
15
|
task :setup_rspec => "ci:setup:rspec"
|
|
16
|
+
task :setup_cucumber => "ci:setup:cucumber"
|
|
11
17
|
task :setup_testunit => "ci:setup:testunit"
|
|
12
18
|
end
|
metadata
CHANGED
|
@@ -1,67 +1,129 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
|
-
rubygems_version: 0.9.0
|
|
3
|
-
specification_version: 1
|
|
4
2
|
name: ci_reporter
|
|
5
3
|
version: !ruby/object:Gem::Version
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
summary: CI::Reporter allows you to generate reams of XML for use with continuous integration systems.
|
|
9
|
-
require_paths:
|
|
10
|
-
- lib
|
|
11
|
-
email: nick@nicksieger.com
|
|
12
|
-
homepage: http://caldersphere.rubyforge.org/ci_reporter
|
|
13
|
-
rubyforge_project: caldersphere
|
|
14
|
-
description: CI::Reporter is an add-on to Test::Unit and RSpec that allows you to generate XML reports of your test and/or spec runs. The resulting files can be read by a continuous integration system that understands Ant's JUnit report XML format, thus allowing your CI system to track test/spec successes and failures.
|
|
15
|
-
autorequire:
|
|
16
|
-
default_executable:
|
|
17
|
-
bindir: bin
|
|
18
|
-
has_rdoc: true
|
|
19
|
-
required_ruby_version: !ruby/object:Gem::Version::Requirement
|
|
20
|
-
requirements:
|
|
21
|
-
- - ">"
|
|
22
|
-
- !ruby/object:Gem::Version
|
|
23
|
-
version: 0.0.0
|
|
24
|
-
version:
|
|
4
|
+
prerelease:
|
|
5
|
+
version: 1.6.5
|
|
25
6
|
platform: ruby
|
|
26
|
-
signing_key:
|
|
27
|
-
cert_chain:
|
|
28
|
-
post_install_message:
|
|
29
7
|
authors:
|
|
30
|
-
- Nick Sieger
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
- README.txt
|
|
35
|
-
- Rakefile
|
|
36
|
-
- lib/ci/reporter/core.rb
|
|
37
|
-
- lib/ci/reporter/report_manager.rb
|
|
38
|
-
- lib/ci/reporter/rspec.rb
|
|
39
|
-
- lib/ci/reporter/test_suite.rb
|
|
40
|
-
- lib/ci/reporter/test_unit.rb
|
|
41
|
-
- lib/ci/reporter/rake/rspec.rb
|
|
42
|
-
- lib/ci/reporter/rake/rspec_loader.rb
|
|
43
|
-
- lib/ci/reporter/rake/test_unit.rb
|
|
44
|
-
- lib/ci/reporter/rake/test_unit_loader.rb
|
|
45
|
-
- spec/spec_helper.rb
|
|
46
|
-
- spec/ci/reporter/report_manager_spec.rb
|
|
47
|
-
- spec/ci/reporter/rspec_spec.rb
|
|
48
|
-
- spec/ci/reporter/test_suite_spec.rb
|
|
49
|
-
- spec/ci/reporter/test_unit_spec.rb
|
|
50
|
-
- tasks/ci_reporter.rake
|
|
51
|
-
test_files:
|
|
52
|
-
- spec/ci/reporter/report_manager_spec.rb
|
|
53
|
-
- spec/ci/reporter/rspec_spec.rb
|
|
54
|
-
- spec/ci/reporter/test_suite_spec.rb
|
|
55
|
-
- spec/ci/reporter/test_unit_spec.rb
|
|
56
|
-
rdoc_options: []
|
|
57
|
-
|
|
58
|
-
extra_rdoc_files: []
|
|
8
|
+
- Nick Sieger
|
|
9
|
+
autorequire:
|
|
10
|
+
bindir: bin
|
|
11
|
+
cert_chain: []
|
|
59
12
|
|
|
13
|
+
date: 2011-06-14 00:00:00 -05:00
|
|
14
|
+
default_executable:
|
|
15
|
+
dependencies:
|
|
16
|
+
- !ruby/object:Gem::Dependency
|
|
17
|
+
name: builder
|
|
18
|
+
prerelease: false
|
|
19
|
+
requirement: &id001 !ruby/object:Gem::Requirement
|
|
20
|
+
none: false
|
|
21
|
+
requirements:
|
|
22
|
+
- - ">="
|
|
23
|
+
- !ruby/object:Gem::Version
|
|
24
|
+
version: 2.1.2
|
|
25
|
+
type: :runtime
|
|
26
|
+
version_requirements: *id001
|
|
27
|
+
- !ruby/object:Gem::Dependency
|
|
28
|
+
name: rubyforge
|
|
29
|
+
prerelease: false
|
|
30
|
+
requirement: &id002 !ruby/object:Gem::Requirement
|
|
31
|
+
none: false
|
|
32
|
+
requirements:
|
|
33
|
+
- - ">="
|
|
34
|
+
- !ruby/object:Gem::Version
|
|
35
|
+
version: 2.0.4
|
|
36
|
+
type: :development
|
|
37
|
+
version_requirements: *id002
|
|
38
|
+
- !ruby/object:Gem::Dependency
|
|
39
|
+
name: hoe
|
|
40
|
+
prerelease: false
|
|
41
|
+
requirement: &id003 !ruby/object:Gem::Requirement
|
|
42
|
+
none: false
|
|
43
|
+
requirements:
|
|
44
|
+
- - ">="
|
|
45
|
+
- !ruby/object:Gem::Version
|
|
46
|
+
version: 2.9.4
|
|
47
|
+
type: :development
|
|
48
|
+
version_requirements: *id003
|
|
49
|
+
description: CI::Reporter is an add-on to Test::Unit, RSpec and Cucumber that allows you to generate XML reports of your test, spec and/or feature runs. The resulting files can be read by a continuous integration system that understands Ant's JUnit report XML format, thus allowing your CI system to track test/spec successes and failures.
|
|
50
|
+
email: nick@nicksieger.com
|
|
60
51
|
executables: []
|
|
61
52
|
|
|
62
53
|
extensions: []
|
|
63
54
|
|
|
64
|
-
|
|
55
|
+
extra_rdoc_files:
|
|
56
|
+
- History.txt
|
|
57
|
+
- Manifest.txt
|
|
58
|
+
- README.txt
|
|
59
|
+
- LICENSE.txt
|
|
60
|
+
files:
|
|
61
|
+
- History.txt
|
|
62
|
+
- Manifest.txt
|
|
63
|
+
- README.txt
|
|
64
|
+
- LICENSE.txt
|
|
65
|
+
- Rakefile
|
|
66
|
+
- stub.rake
|
|
67
|
+
- lib/ci/reporter/core.rb
|
|
68
|
+
- lib/ci/reporter/cucumber.rb
|
|
69
|
+
- lib/ci/reporter/report_manager.rb
|
|
70
|
+
- lib/ci/reporter/rspec.rb
|
|
71
|
+
- lib/ci/reporter/test_suite.rb
|
|
72
|
+
- lib/ci/reporter/test_unit.rb
|
|
73
|
+
- lib/ci/reporter/version.rb
|
|
74
|
+
- lib/ci/reporter/rake/cucumber.rb
|
|
75
|
+
- lib/ci/reporter/rake/cucumber_loader.rb
|
|
76
|
+
- lib/ci/reporter/rake/rspec.rb
|
|
77
|
+
- lib/ci/reporter/rake/rspec_loader.rb
|
|
78
|
+
- lib/ci/reporter/rake/test_unit.rb
|
|
79
|
+
- lib/ci/reporter/rake/test_unit_loader.rb
|
|
80
|
+
- lib/ci/reporter/rake/utils.rb
|
|
81
|
+
- spec/spec_helper.rb
|
|
82
|
+
- spec/ci/reporter/cucumber_spec.rb
|
|
83
|
+
- spec/ci/reporter/output_capture_spec.rb
|
|
84
|
+
- spec/ci/reporter/report_manager_spec.rb
|
|
85
|
+
- spec/ci/reporter/rspec_spec.rb
|
|
86
|
+
- spec/ci/reporter/test_suite_spec.rb
|
|
87
|
+
- spec/ci/reporter/test_unit_spec.rb
|
|
88
|
+
- spec/ci/reporter/rake/rake_tasks_spec.rb
|
|
89
|
+
- tasks/ci_reporter.rake
|
|
90
|
+
has_rdoc: true
|
|
91
|
+
homepage: http://caldersphere.rubyforge.org/ci_reporter
|
|
92
|
+
licenses: []
|
|
65
93
|
|
|
66
|
-
|
|
94
|
+
post_install_message:
|
|
95
|
+
rdoc_options:
|
|
96
|
+
- --main
|
|
97
|
+
- README.txt
|
|
98
|
+
- -SHN
|
|
99
|
+
- -f
|
|
100
|
+
- darkfish
|
|
101
|
+
require_paths:
|
|
102
|
+
- lib
|
|
103
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
|
104
|
+
none: false
|
|
105
|
+
requirements:
|
|
106
|
+
- - ">="
|
|
107
|
+
- !ruby/object:Gem::Version
|
|
108
|
+
version: "0"
|
|
109
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
|
110
|
+
none: false
|
|
111
|
+
requirements:
|
|
112
|
+
- - ">="
|
|
113
|
+
- !ruby/object:Gem::Version
|
|
114
|
+
version: "0"
|
|
115
|
+
requirements: []
|
|
67
116
|
|
|
117
|
+
rubyforge_project: caldersphere
|
|
118
|
+
rubygems_version: 1.5.1
|
|
119
|
+
signing_key:
|
|
120
|
+
specification_version: 3
|
|
121
|
+
summary: CI::Reporter allows you to generate reams of XML for use with continuous integration systems.
|
|
122
|
+
test_files:
|
|
123
|
+
- spec/ci/reporter/cucumber_spec.rb
|
|
124
|
+
- spec/ci/reporter/output_capture_spec.rb
|
|
125
|
+
- spec/ci/reporter/report_manager_spec.rb
|
|
126
|
+
- spec/ci/reporter/rspec_spec.rb
|
|
127
|
+
- spec/ci/reporter/test_suite_spec.rb
|
|
128
|
+
- spec/ci/reporter/test_unit_spec.rb
|
|
129
|
+
- spec/ci/reporter/rake/rake_tasks_spec.rb
|