timfel-ci_reporter 1.6.2
Sign up to get free protection for your applications and to get access to all the features.
- data/History.txt +124 -0
- data/LICENSE.txt +21 -0
- data/Manifest.txt +28 -0
- data/README.txt +70 -0
- data/Rakefile +83 -0
- data/lib/ci/reporter/core.rb +6 -0
- data/lib/ci/reporter/cucumber.rb +101 -0
- data/lib/ci/reporter/rake/cucumber.rb +17 -0
- data/lib/ci/reporter/rake/cucumber_loader.rb +6 -0
- data/lib/ci/reporter/rake/rspec.rb +23 -0
- data/lib/ci/reporter/rake/rspec_loader.rb +6 -0
- data/lib/ci/reporter/rake/test_unit.rb +12 -0
- data/lib/ci/reporter/rake/test_unit_loader.rb +21 -0
- data/lib/ci/reporter/report_manager.rb +25 -0
- data/lib/ci/reporter/rspec.rb +148 -0
- data/lib/ci/reporter/test_suite.rb +157 -0
- data/lib/ci/reporter/test_unit.rb +132 -0
- data/lib/ci/reporter/version.rb +5 -0
- data/spec/ci/reporter/cucumber_spec.rb +204 -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 +39 -0
- data/spec/ci/reporter/rspec_spec.rb +125 -0
- data/spec/ci/reporter/test_suite_spec.rb +151 -0
- data/spec/ci/reporter/test_unit_spec.rb +152 -0
- data/spec/spec_helper.rb +18 -0
- data/stub.rake +14 -0
- data/tasks/ci_reporter.rake +18 -0
- metadata +135 -0
data/History.txt
ADDED
@@ -0,0 +1,124 @@
|
|
1
|
+
== 1.6.2
|
2
|
+
|
3
|
+
- GH #1: Properly escape text in system-out and system-err tags (Matt Kanwisher)
|
4
|
+
- GH #2: Report rspec before(:all) failures (Edgars Beigarts)
|
5
|
+
- GH #3: Support for Omissions and Pending Tests from Test::Unit 2.0.x (Sam Hendley)
|
6
|
+
|
7
|
+
== 1.6.1
|
8
|
+
|
9
|
+
- Add 'skipped' flag for pending RSpec examples (Aaron Unger)
|
10
|
+
|
11
|
+
== 1.6.0
|
12
|
+
|
13
|
+
- Add support for Cucumber (tested against 0.3.0 - 0.3.2); (Graeme Mathieson)
|
14
|
+
|
15
|
+
== 1.5.3
|
16
|
+
|
17
|
+
- Compatibility with latest RSpec (1.2.4); (Paul Boone)
|
18
|
+
|
19
|
+
== 1.5.2
|
20
|
+
|
21
|
+
- Compatibility with latest RSpec (1.1.11 or so); use example
|
22
|
+
description method if available
|
23
|
+
- Remove dependency on rubygems when requiring builder (rescue
|
24
|
+
LoadError) (Jari Bakken)
|
25
|
+
- Source repository moved to github/git.caldersphere.net
|
26
|
+
|
27
|
+
== 1.5.1
|
28
|
+
|
29
|
+
- Fix silly load-path error that some had been seeing
|
30
|
+
|
31
|
+
== 1.5
|
32
|
+
|
33
|
+
- Support for RSpec 1.1.1 example groups (which broke ci_reporter 1.4)
|
34
|
+
- Change internal model to delegation instead of inheritance, allowing
|
35
|
+
ci_reporter to wrap different output formatters
|
36
|
+
- Add 'ci:setup:rspecdoc' task to output specdoc format instead of
|
37
|
+
progress
|
38
|
+
- Add support for pending examples; they will be listed in the report
|
39
|
+
XML as successful, but the name will have a '(PENDING)' tag appended
|
40
|
+
- Support for RSpec < 0.9 removed as promised; use 1.4 if you still
|
41
|
+
need to use an older version of RSpec
|
42
|
+
|
43
|
+
== 1.4
|
44
|
+
|
45
|
+
- Test::Unit tests that fail in multiple places (setup, test method,
|
46
|
+
and teardown) are now tracked (marcog)
|
47
|
+
- Explicit dependency requirement on Builder (>= 2.1.2)
|
48
|
+
- Use of RSpec < 0.9 is now deprecated; support will probably
|
49
|
+
disappear in the next version
|
50
|
+
|
51
|
+
== 1.3.5
|
52
|
+
|
53
|
+
- Change way we append to environment variables to appease windows
|
54
|
+
(Tracker #13998, Adam Anderson)
|
55
|
+
|
56
|
+
== 1.3.4
|
57
|
+
|
58
|
+
- Call #to_s on the object passed in as the test suite name;
|
59
|
+
compatibility fix for RSpec trunk which passes a
|
60
|
+
Spec::DSL::Description instead of a string
|
61
|
+
- Fix broken spec due to pending feature introduced in recent RSpec
|
62
|
+
- Fix compatibility for JRuby
|
63
|
+
- Add stub.rake file as another way to wrap existing Rakefile, with
|
64
|
+
note in README
|
65
|
+
|
66
|
+
== 1.3.3
|
67
|
+
|
68
|
+
- Use SPEC_OPTS instead of RSPECOPTS (Aslak Hellesøy)
|
69
|
+
- Add assertions attribute to individual test cases (Tracker #11563,
|
70
|
+
Andy Sipe)
|
71
|
+
|
72
|
+
== 1.3.2
|
73
|
+
|
74
|
+
- Fix bug trying to modify frozen environment strings
|
75
|
+
- Upgrade all specs to RSpec 1.0 style
|
76
|
+
- Add specs for rake tasks
|
77
|
+
|
78
|
+
== 1.3.1
|
79
|
+
|
80
|
+
- Fixed to be compatible with RSpec 1.0.x (added fourth parameter to
|
81
|
+
Formatter#dump_summary)
|
82
|
+
|
83
|
+
== 1.3
|
84
|
+
|
85
|
+
- Fixed to be compatible with RSpec 0.9
|
86
|
+
- Failure location text now contains both the exception message and
|
87
|
+
class name (in case the type and message attributes were truncated)
|
88
|
+
|
89
|
+
== 1.2.4
|
90
|
+
|
91
|
+
- Allow to report on RSpec specs when working with non-gem RSpec
|
92
|
+
- Note: CI::Reporter is only compatible with RSpec up to 0.8.2
|
93
|
+
|
94
|
+
== 1.2.3
|
95
|
+
|
96
|
+
- Append to TESTOPTS and RSPECOPTS environment variables (Bret
|
97
|
+
Pettichord) so that other apps can put values in them as well
|
98
|
+
|
99
|
+
== 1.2.2
|
100
|
+
|
101
|
+
- Responds to environment variable CI_CAPTURE: if set to "off",
|
102
|
+
stdout/stderr capture will be disabled.
|
103
|
+
|
104
|
+
== 1.2.1
|
105
|
+
|
106
|
+
- Add license and copyright information (finally)
|
107
|
+
|
108
|
+
== 1.2
|
109
|
+
|
110
|
+
- Capture standard output and standard error during each individual
|
111
|
+
test suite and include in the XML file in system-out and system-err
|
112
|
+
elements, respectively
|
113
|
+
(Tracker#9054[http://rubyforge.org/tracker/index.php?func=detail&aid=9054&group_id=2857&atid=11007])
|
114
|
+
|
115
|
+
== 1.1
|
116
|
+
|
117
|
+
- Add +assertions+ attribute to the +testsuite+ element that will
|
118
|
+
contain per-suite assertion counts when used with Test::Unit. Not
|
119
|
+
useful with applications that read Ant/JUnit XML, but custom
|
120
|
+
applications may wish to access it.
|
121
|
+
|
122
|
+
== 1.0
|
123
|
+
|
124
|
+
- Initial Release.
|
data/LICENSE.txt
ADDED
@@ -0,0 +1,21 @@
|
|
1
|
+
# Copyright (c) 2006-2010 Nick Sieger <nicksieger@gmail.com>
|
2
|
+
#
|
3
|
+
# Permission is hereby granted, free of charge, to any person
|
4
|
+
# obtaining a copy of this software and associated documentation files
|
5
|
+
# (the "Software"), to deal in the Software without restriction,
|
6
|
+
# including without limitation the rights to use, copy, modify, merge,
|
7
|
+
# publish, distribute, sublicense, and/or sell copies of the Software,
|
8
|
+
# and to permit persons to whom the Software is furnished to do so,
|
9
|
+
# subject to the following conditions:
|
10
|
+
#
|
11
|
+
# The above copyright notice and this permission notice shall be
|
12
|
+
# included in all copies or substantial portions of the Software.
|
13
|
+
#
|
14
|
+
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
15
|
+
# EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
16
|
+
# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
17
|
+
# NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS
|
18
|
+
# BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
|
19
|
+
# ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
|
20
|
+
# CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
21
|
+
# SOFTWARE.
|
data/Manifest.txt
ADDED
@@ -0,0 +1,28 @@
|
|
1
|
+
History.txt
|
2
|
+
Manifest.txt
|
3
|
+
README.txt
|
4
|
+
LICENSE.txt
|
5
|
+
Rakefile
|
6
|
+
stub.rake
|
7
|
+
lib/ci/reporter/core.rb
|
8
|
+
lib/ci/reporter/cucumber.rb
|
9
|
+
lib/ci/reporter/rake/cucumber.rb
|
10
|
+
lib/ci/reporter/rake/cucumber_loader.rb
|
11
|
+
lib/ci/reporter/rake/rspec.rb
|
12
|
+
lib/ci/reporter/rake/rspec_loader.rb
|
13
|
+
lib/ci/reporter/rake/test_unit.rb
|
14
|
+
lib/ci/reporter/rake/test_unit_loader.rb
|
15
|
+
lib/ci/reporter/report_manager.rb
|
16
|
+
lib/ci/reporter/rspec.rb
|
17
|
+
lib/ci/reporter/test_suite.rb
|
18
|
+
lib/ci/reporter/test_unit.rb
|
19
|
+
lib/ci/reporter/version.rb
|
20
|
+
spec/ci/reporter/cucumber_spec.rb
|
21
|
+
spec/ci/reporter/output_capture_spec.rb
|
22
|
+
spec/ci/reporter/rake/rake_tasks_spec.rb
|
23
|
+
spec/ci/reporter/report_manager_spec.rb
|
24
|
+
spec/ci/reporter/rspec_spec.rb
|
25
|
+
spec/ci/reporter/test_suite_spec.rb
|
26
|
+
spec/ci/reporter/test_unit_spec.rb
|
27
|
+
spec/spec_helper.rb
|
28
|
+
tasks/ci_reporter.rake
|
data/README.txt
ADDED
@@ -0,0 +1,70 @@
|
|
1
|
+
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.
|
2
|
+
|
3
|
+
== Dependencies
|
4
|
+
|
5
|
+
CI::Reporter has one required dependency on Builder, but since many will have a viable version of Builder via Rails' ActiveSupport gem, Builder is not a direct dependency of the project at the moment. Instead, ensure that you have either the +builder+ or +activesupport+ gem installed before continuing. CI::Reporter will raise an exception at runtime if it cannot locate Builder.
|
6
|
+
|
7
|
+
== Installation
|
8
|
+
|
9
|
+
CI::Reporter is available as a gem. To install the gem, use the usual gem command:
|
10
|
+
|
11
|
+
gem install ci_reporter
|
12
|
+
|
13
|
+
== Usage
|
14
|
+
|
15
|
+
CI::Reporter works best with projects that use a +Rakefile+ along with the standard <code>Rake::TestTask</code> or <code>Spec::Rake::SpecTask</code> tasks for running tests or examples, respectively. In this fashion, it hooks into <code>Test::Unit</code> or +RSpec+ using environment variables recognized by these custom tasks to inject the CI::Reporter code into the test or spec runs. If you're using the Rails plugin, step 1 is unnecessary; skip to step 2.
|
16
|
+
|
17
|
+
1. To use CI::Reporter, simply add the following lines to your Rakefile:
|
18
|
+
|
19
|
+
require 'rubygems'
|
20
|
+
gem 'ci_reporter'
|
21
|
+
require 'ci/reporter/rake/rspec' # use this if you're using RSpec
|
22
|
+
require 'ci/reporter/rake/cucumber' # use this if you're using Cucumber
|
23
|
+
require 'ci/reporter/rake/test_unit' # use this if you're using Test::Unit
|
24
|
+
|
25
|
+
2. Next, either modify your Rakefile to make the <code>ci:setup:rspec</code>, <code>ci:setup:cucumber</code> or <code>ci:setup:testunit</code> task a dependency of your test tasks, or include them on the Rake command-line before the name of the task that runs the tests or specs.
|
26
|
+
|
27
|
+
rake ci:setup:testunit test
|
28
|
+
|
29
|
+
Report files are written, by default, to the <code>test/reports</code>, <code>features/reports</code> or <code>spec/reports</code> subdirectory of your project. If you wish to customize the location, simply set the environment variable CI_REPORTS (either in the environment, on the Rake command line, or in your Rakefile) to the location where they should go.
|
30
|
+
|
31
|
+
== Advanced Usage
|
32
|
+
|
33
|
+
If you don't have control over the Rakefile or don't want to modify it, CI::Reporter has a substitute rake file that you can specify on the command-line. It assumes that the main project rake file is called +Rakefile+ and lives in the current directory. Run like so:
|
34
|
+
|
35
|
+
rake -f GEM_PATH/stub.rake ci:setup:testunit test
|
36
|
+
rake -f GEM_PATH/stub.rake ci:setup:rspec spec
|
37
|
+
rake -f GEM_PATH/stub.rake ci:setup:cucumber features
|
38
|
+
|
39
|
+
If for some reason you can't use the above technique to inject CI::Reporter (e.g., you're not using Rake), you'll have to do one of these:
|
40
|
+
|
41
|
+
1. If you're using <code>Test::Unit</code>, ensure the <code>ci/reporter/rake/test_unit_loader.rb</code> file is loaded or required at some point before the tests are run.
|
42
|
+
|
43
|
+
2. If you're using +RSpec+, you'll need to pass the following arguments to the +spec+ command:
|
44
|
+
|
45
|
+
--require GEM_PATH/lib/ci/reporter/rake/rspec_loader
|
46
|
+
--format CI::Reporter::RSpec
|
47
|
+
|
48
|
+
3. If you're using Cucumber, you'll need to cheat slightly so that Cucumber's step definition autoloading will still work. Instead of calling the +cucumber+ script directly, run:
|
49
|
+
|
50
|
+
ruby -r GEM_PATH/lib/ci/reporter/rake/cucumber_loader -S cucumber --format CI::Reporter::Cucumber
|
51
|
+
|
52
|
+
There's a bit of a chicken and egg problem because rubygems needs to be loaded before you can require any CI::Reporter files. If you cringe hard-coding a full path to a specific version of the gem, you can also copy the +rspec_loader+ file into your project and require it directly -- the contents are version-agnostic and are not likely to change in future releases.
|
53
|
+
|
54
|
+
== Environment Variables
|
55
|
+
|
56
|
+
* +CI_REPORTS+: if set, points to a directory where report files will be written.
|
57
|
+
* +CI_CAPTURE+: if set to value "off", stdout/stderr capture will be disabled.
|
58
|
+
|
59
|
+
== Source
|
60
|
+
|
61
|
+
You can get the CI::Reporter source using Git, in any of the following ways:
|
62
|
+
|
63
|
+
git clone git://git.caldersphere.net/ci_reporter.git
|
64
|
+
git clone git://github.com/nicksieger/ci_reporter.git
|
65
|
+
|
66
|
+
You can also download a tarball of the latest CI::Reporter source at http://github.com/nicksieger/ci_reporter/tree/master.
|
67
|
+
|
68
|
+
== License
|
69
|
+
|
70
|
+
This software is released under an MIT license. For details, see the LICENSE.txt file included with the distribution. The software is copyright (c) 2006-2007 Nick Sieger <nicksieger@gmail.com>.
|
data/Rakefile
ADDED
@@ -0,0 +1,83 @@
|
|
1
|
+
require 'spec/rake/spectask'
|
2
|
+
require 'spec/rake/verify_rcov'
|
3
|
+
|
4
|
+
MANIFEST = FileList["History.txt", "Manifest.txt", "README.txt", "LICENSE.txt", "Rakefile",
|
5
|
+
"*.rake", "lib/**/*.rb", "spec/**/*.rb", "tasks/**/*.rake"]
|
6
|
+
|
7
|
+
begin
|
8
|
+
File.open("Manifest.txt", "w") {|f| MANIFEST.each {|n| f << "#{n}\n"} }
|
9
|
+
require 'hoe'
|
10
|
+
require File.dirname(__FILE__) + '/lib/ci/reporter/version'
|
11
|
+
hoe = Hoe.spec("timfel-ci_reporter") do |p|
|
12
|
+
p.version = CI::Reporter::VERSION
|
13
|
+
p.rubyforge_name = "caldersphere"
|
14
|
+
p.url = "http://caldersphere.rubyforge.org/ci_reporter"
|
15
|
+
p.author = "Nick Sieger"
|
16
|
+
p.email = "nick@nicksieger.com"
|
17
|
+
p.summary = "CI::Reporter allows you to generate reams of XML for use with continuous integration systems."
|
18
|
+
p.changes = p.paragraphs_of('History.txt', 0..1).join("\n\n")
|
19
|
+
p.description = p.paragraphs_of('README.txt', 0...1).join("\n\n")
|
20
|
+
p.extra_deps.reject!{|d| d.first == "hoe"}
|
21
|
+
p.test_globs = ["spec/**/*_spec.rb"]
|
22
|
+
p.extra_deps << ['builder', ">= 2.1.2"]
|
23
|
+
end
|
24
|
+
hoe.spec.files = MANIFEST
|
25
|
+
hoe.spec.dependencies.delete_if { |dep| dep.name == "hoe" }
|
26
|
+
rescue LoadError
|
27
|
+
puts "You really need Hoe installed to be able to package this gem"
|
28
|
+
end
|
29
|
+
|
30
|
+
# Hoe insists on setting task :default => :test
|
31
|
+
# !@#$ no easy way to empty the default list of prerequisites
|
32
|
+
# Leave my tasks alone, Hoe
|
33
|
+
%w(default spec rcov).each do |task|
|
34
|
+
Rake::Task[task].prerequisites.clear
|
35
|
+
Rake::Task[task].actions.clear
|
36
|
+
end
|
37
|
+
|
38
|
+
# No RCov on JRuby at the moment
|
39
|
+
if RUBY_PLATFORM =~ /java/
|
40
|
+
task :default => :spec
|
41
|
+
else
|
42
|
+
task :default => :rcov
|
43
|
+
end
|
44
|
+
|
45
|
+
Spec::Rake::SpecTask.new do |t|
|
46
|
+
t.spec_opts = ["--diff", "unified"]
|
47
|
+
end
|
48
|
+
|
49
|
+
Spec::Rake::SpecTask.new("spec:rcov") do |t|
|
50
|
+
t.rcov_opts << '--exclude gems/*'
|
51
|
+
t.rcov = true
|
52
|
+
end
|
53
|
+
# so we don't confuse autotest
|
54
|
+
RCov::VerifyTask.new(:rcov) do |t|
|
55
|
+
# Can't get threshold up to 100 unless RSpec backwards compatibility
|
56
|
+
# code is dropped
|
57
|
+
t.threshold = 98
|
58
|
+
t.require_exact_threshold = false
|
59
|
+
end
|
60
|
+
task "spec:rcov" do
|
61
|
+
rm_f "Manifest.txt"
|
62
|
+
end
|
63
|
+
task :rcov => "spec:rcov"
|
64
|
+
|
65
|
+
task :generate_output do
|
66
|
+
rm_rf "acceptance/reports"
|
67
|
+
ENV['CI_REPORTS'] = "acceptance/reports"
|
68
|
+
begin
|
69
|
+
`ruby -Ilib acceptance/test_unit_example_test.rb` rescue nil
|
70
|
+
`ruby -Ilib -S spec --require ci/reporter/rake/rspec_loader --format CI::Reporter::RSpec acceptance/rspec_example_spec.rb` rescue nil
|
71
|
+
`ruby -Ilib -rci/reporter/rake/cucumber_loader -S cucumber --format CI::Reporter::Cucumber acceptance/cucumber` rescue nil
|
72
|
+
ensure
|
73
|
+
ENV.delete 'CI_REPORTS'
|
74
|
+
end
|
75
|
+
end
|
76
|
+
task :acceptance => :generate_output
|
77
|
+
|
78
|
+
Spec::Rake::SpecTask.new(:acceptance_spec) do |t|
|
79
|
+
t.spec_files = FileList['acceptance/verification_spec.rb']
|
80
|
+
end
|
81
|
+
task :acceptance => :acceptance_spec
|
82
|
+
|
83
|
+
task :default => :acceptance
|
@@ -0,0 +1,101 @@
|
|
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
|
+
require 'ci/reporter/core'
|
6
|
+
tried_gem = false
|
7
|
+
begin
|
8
|
+
require 'cucumber'
|
9
|
+
rescue LoadError
|
10
|
+
unless tried_gem
|
11
|
+
tried_gem = true
|
12
|
+
require 'rubygems'
|
13
|
+
gem 'cucumber'
|
14
|
+
retry
|
15
|
+
end
|
16
|
+
end
|
17
|
+
|
18
|
+
module CI
|
19
|
+
module Reporter
|
20
|
+
class CucumberFailure
|
21
|
+
attr_reader :step
|
22
|
+
|
23
|
+
def initialize(step)
|
24
|
+
@step = step
|
25
|
+
end
|
26
|
+
|
27
|
+
def failure?
|
28
|
+
true
|
29
|
+
end
|
30
|
+
|
31
|
+
def error?
|
32
|
+
!failure?
|
33
|
+
end
|
34
|
+
|
35
|
+
def name
|
36
|
+
step.exception.class.name
|
37
|
+
end
|
38
|
+
|
39
|
+
def message
|
40
|
+
step.exception.message
|
41
|
+
end
|
42
|
+
|
43
|
+
def location
|
44
|
+
step.exception.backtrace.join("\n")
|
45
|
+
end
|
46
|
+
end
|
47
|
+
|
48
|
+
class Cucumber
|
49
|
+
|
50
|
+
def initialize(step_mother, io, options)
|
51
|
+
@report_manager = ReportManager.new("features")
|
52
|
+
end
|
53
|
+
|
54
|
+
def before_feature_name(name)
|
55
|
+
@current_feature_name = name.split("\n").first
|
56
|
+
end
|
57
|
+
|
58
|
+
def before_feature_element(feature_element)
|
59
|
+
@test_suite = TestSuite.new("#{@current_feature_name} #{feature_element.instance_variable_get("@name")}")
|
60
|
+
@test_suite.start
|
61
|
+
end
|
62
|
+
|
63
|
+
def after_feature_element(feature_element)
|
64
|
+
@test_suite.finish
|
65
|
+
@report_manager.write_report(@test_suite)
|
66
|
+
@test_suite = nil
|
67
|
+
end
|
68
|
+
|
69
|
+
def before_step(step)
|
70
|
+
@test_case = TestCase.new(step.name)
|
71
|
+
@test_case.start
|
72
|
+
end
|
73
|
+
|
74
|
+
def after_step(step)
|
75
|
+
if @test_case.nil?
|
76
|
+
$stderr << "Warning, no test case was started for #{step}. Time won't be logged."
|
77
|
+
@test_case = TestCase.new(step.name)
|
78
|
+
@test_case.start
|
79
|
+
end
|
80
|
+
@test_case.finish
|
81
|
+
|
82
|
+
case step.status
|
83
|
+
when :pending, :undefined
|
84
|
+
@test_case.name = "#{@test_case.name} (PENDING)"
|
85
|
+
when :skipped
|
86
|
+
@test_case.name = "#{@test_case.name} (SKIPPED)"
|
87
|
+
when :failed
|
88
|
+
@test_case.failures << CucumberFailure.new(step)
|
89
|
+
end
|
90
|
+
|
91
|
+
if @test_suite.nil?
|
92
|
+
$stderr << "Warning, no test suite was started for the scenario around #{step}. Time logging will be wrong."
|
93
|
+
@test_suite = TestSuite.new("#{@current_feature_name} Unspecified Feature Element")
|
94
|
+
@test_suite.start
|
95
|
+
end
|
96
|
+
@test_case.finish
|
97
|
+
@test_suite.testcases << @test_case
|
98
|
+
end
|
99
|
+
end
|
100
|
+
end
|
101
|
+
end
|
@@ -0,0 +1,17 @@
|
|
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
|
+
namespace :ci do
|
6
|
+
namespace :setup do
|
7
|
+
task :cucumber_report_cleanup do
|
8
|
+
rm_rf ENV["CI_REPORTS"] || "features/reports"
|
9
|
+
end
|
10
|
+
|
11
|
+
task :cucumber => :cucumber_report_cleanup do
|
12
|
+
spec_opts = ["--require", "#{File.dirname(__FILE__)}/cucumber_loader.rb",
|
13
|
+
"--format", "CI::Reporter::Cucumber"].join(" ")
|
14
|
+
ENV["CUCUMBER_OPTS"] = "#{ENV['CUCUMBER_OPTS']} #{spec_opts}"
|
15
|
+
end
|
16
|
+
end
|
17
|
+
end
|