diff --git a/lib/ci/reporter/cucumber.rb b/lib/ci/reporter/cucumber.rb new file mode 100644 index 0000000..1d3518e --- /dev/null +++ b/lib/ci/reporter/cucumber.rb @@ -0,0 +1,28 @@ +# (c) Copyright 2006-2009 Nick Sieger +# See the file LICENSE.txt included with the distribution for +# software license details. + +require 'ci/reporter/core' +tried_gem = false +begin + require 'cucumber' + require 'cucumber/formatter/progress' + require 'cucumber/formatter/pretty' +rescue LoadError + unless tried_gem + tried_gem = true + require 'rubygems' + gem 'cucumber' + retry + end +end + +module CI + module Reporter + class Cucumber < ::Cucumber::Formatter::Progress + end + + class CucumberDoc < ::Cucumber::Formatter::Pretty + end + end +end diff --git a/lib/ci/reporter/rake/cucumber.rb b/lib/ci/reporter/rake/cucumber.rb new file mode 100644 index 0000000..b2d2e7a --- /dev/null +++ b/lib/ci/reporter/rake/cucumber.rb @@ -0,0 +1,23 @@ +# (c) Copyright 2006-2007 Nick Sieger +# See the file LICENSE.txt included with the distribution for +# software license details. + +namespace :ci do + namespace :setup do + task :cucumber_report_cleanup do + rm_rf ENV["CI_REPORTS"] || "features/reports" + end + + task :cucumber => :cucumber_report_cleanup do + spec_opts = ["--require", "#{File.dirname(__FILE__)}/cucumber_loader.rb", + "--format", "CI::Reporter::Cucumber"].join(" ") + ENV["CUCUMBER_OPTS"] = "#{ENV['CUCUMBER_OPTS']} #{spec_opts}" + end + + task :cucumberdoc => :cucumber_report_cleanup do + spec_opts = ["--require", "#{File.dirname(__FILE__)}/cucumber_loader.rb", + "--format", "CI::Reporter::CucumberDoc"].join(" ") + ENV["CUCUMBER_OPTS"] = "#{ENV['CUCUMBER_OPTS']} #{spec_opts}" + end + end +end diff --git a/lib/ci/reporter/rake/cucumber_loader.rb b/lib/ci/reporter/rake/cucumber_loader.rb new file mode 100644 index 0000000..1be6c1f --- /dev/null +++ b/lib/ci/reporter/rake/cucumber_loader.rb @@ -0,0 +1,6 @@ +# (c) Copyright 2006-2007 Nick Sieger +# See the file LICENSE.txt included with the distribution for +# software license details. + +$: << File.dirname(__FILE__) + "/../../.." +require 'ci/reporter/cucumber' \ No newline at end of file diff --git a/stub.rake b/stub.rake index e8f9de3..7d0a89f 100644 --- a/stub.rake +++ b/stub.rake @@ -9,5 +9,6 @@ # load File.dirname(__FILE__) + '/lib/ci/reporter/rake/rspec.rb' +load File.dirname(__FILE__) + '/lib/ci/reporter/rake/cucumber.rb' load File.dirname(__FILE__) + '/lib/ci/reporter/rake/test_unit.rb' load 'Rakefile' diff --git a/tasks/ci_reporter.rake b/tasks/ci_reporter.rake index 4878a33..8884e1a 100644 --- a/tasks/ci_reporter.rake +++ b/tasks/ci_reporter.rake @@ -8,9 +8,11 @@ rescue Gem::LoadError $: << File.dirname(__FILE__) + "/../lib" end require 'ci/reporter/rake/rspec' +require 'ci/reporter/rake/cucumber' require 'ci/reporter/rake/test_unit' namespace :ci do task :setup_rspec => "ci:setup:rspec" + task :setup_cucumber => "ci:setup:cucumber" task :setup_testunit => "ci:setup:testunit" end