我正在尝试使用ci_reporter为Hudson配置rake以从rspec生成报告。
使用下面的rake文件,使用spec命令运行时传递的相同测试无法使用新的rake文件运行。首先有很多警告(我省略了,因为它们有太多要显示)。
ci_reporter似乎正在生成报告,但它们是空的。
非常感谢任何帮助!
谢谢! -Laura
# Add your own tasks in files placed in lib/tasks ending in .rake,
# for example lib/tasks/capistrano.rake, and they will automatically be available to Rake.
require 'rake'
require 'rake/testtask'
require 'rake/rdoctask'
require 'rake/packagetask'
require 'spec/version'
require 'spec/rake/spectask'
require 'rcov'
require 'tasks/rails'
gem 'ci_reporter'
require 'ci/reporter/rake/rspec'
def rspec_report_path
"reports/rspec/"
end
namespace :ci do
task :pre_ci do
ENV["CI_REPORTS"] = rspec_report_path
gem 'ci_reporter'
require 'ci/reporter/rake/rspec'
end
task :rspec => [:pre_ci, "ci:setup:rspec"]
desc "do rspec tests and test coverage"
@suite = Spec::Rake::SpecTask.new('rspec') do |t|
# t.spec_files = FileList['spec/**/*_spec.rb']
t.spec_files = FileList['spec/models/assignment_spec.rb']
t.warning = true
t.rcov = false
t.rcov_dir = 'coverage'
t.fail_on_error = false
t.rcov_opts = ['--exclude', "kernel,load-diff-lcs\.rb,instance_exec\.rb,lib/spec.rb,lib/spec/runner.rb,^spec/*,bin/spec,examples,/gems,/Library/Ruby,\.autotest,#{ENV['GEM_HOME']}", '-I', 'lib/']
end
end
错误:
/usr/lib/ruby/gems/1.8/gems/activesupport-2.3.14/lib/active_support/whiny_nil.rb:52:in `method_missing': undefined method `metadata' for nil:NilClass (NoMethodError)
from /usr/lib/ruby/gems/1.8/gems/ci_reporter-1.7.0/lib/ci/reporter/rspec.rb:46:in `name'
from /usr/lib/ruby/gems/1.8/gems/ci_reporter-1.7.0/lib/ci/reporter/test_suite.rb:146
from /usr/lib/ruby/gems/1.8/gems/ci_reporter-1.7.0/lib/ci/reporter/test_suite.rb:140:in `each'
from /usr/lib/ruby/gems/1.8/gems/ci_reporter-1.7.0/lib/ci/reporter/test_suite.rb:140
from /usr/lib/ruby/gems/1.8/gems/builder-2.1.2/lib/builder/xmlbase.rb:134:in `call'
from /usr/lib/ruby/gems/1.8/gems/builder-2.1.2/lib/builder/xmlbase.rb:134:in `_nested_structures'
from /usr/lib/ruby/gems/1.8/gems/builder-2.1.2/lib/builder/xmlbase.rb:58:in `method_missing'
from /usr/lib/ruby/gems/1.8/gems/ci_reporter-1.7.0/lib/ci/reporter/test_suite.rb:136:in `to_xml'
from /usr/lib/ruby/gems/1.8/gems/ci_reporter-1.7.0/lib/ci/reporter/test_suite.rb:86
from /usr/lib/ruby/gems/1.8/gems/ci_reporter-1.7.0/lib/ci/reporter/test_suite.rb:85:in `each'
from /usr/lib/ruby/gems/1.8/gems/ci_reporter-1.7.0/lib/ci/reporter/test_suite.rb:85
from /usr/lib/ruby/gems/1.8/gems/builder-2.1.2/lib/builder/xmlbase.rb:134:in `call'
from /usr/lib/ruby/gems/1.8/gems/builder-2.1.2/lib/builder/xmlbase.rb:134:in `_nested_structures'
from /usr/lib/ruby/gems/1.8/gems/builder-2.1.2/lib/builder/xmlbase.rb:58:in `method_missing'
from /usr/lib/ruby/gems/1.8/gems/ci_reporter-1.7.0/lib/ci/reporter/test_suite.rb:84:in `to_xml'
from /usr/lib/ruby/gems/1.8/gems/ci_reporter-1.7.0/lib/ci/reporter/report_manager.rb:18:in `write_report'
from /usr/lib/ruby/gems/1.8/gems/ci_reporter-1.7.0/lib/ci/reporter/report_manager.rb:17:in `open'
from /usr/lib/ruby/gems/1.8/gems/ci_reporter-1.7.0/lib/ci/reporter/report_manager.rb:17:in `write_report'
from /usr/lib/ruby/gems/1.8/gems/ci_reporter-1.7.0/lib/ci/reporter/rspec.rb:203:in `write_report'
from /usr/lib/ruby/gems/1.8/gems/ci_reporter-1.7.0/lib/ci/reporter/rspec.rb:207:in `new_suite'
from /usr/lib/ruby/gems/1.8/gems/ci_reporter-1.7.0/lib/ci/reporter/rspec.rb:114:in `example_group_started'
from /usr/lib/ruby/gems/1.8/gems/rspec-1.3.2/lib/spec/runner/reporter.rb:19:in `example_group_started'
from /usr/lib/ruby/gems/1.8/gems/rspec-1.3.2/lib/spec/runner/reporter.rb:18:in `each'
from /usr/lib/ruby/gems/1.8/gems/rspec-1.3.2/lib/spec/runner/reporter.rb:18:in `example_group_started'
from /usr/lib/ruby/gems/1.8/gems/rspec-1.3.2/lib/spec/example/example_group_methods.rb:115:in `notify'
from /usr/lib/ruby/gems/1.8/gems/rspec-1.3.2/lib/spec/example/example_group_methods.rb:96:in `run'
from /usr/lib/ruby/gems/1.8/gems/rspec-1.3.2/lib/spec/runner/example_group_runner.rb:23:in `run'
from /usr/lib/ruby/gems/1.8/gems/rspec-1.3.2/lib/spec/runner/example_group_runner.rb:22:in `each'
from /usr/lib/ruby/gems/1.8/gems/rspec-1.3.2/lib/spec/runner/example_group_runner.rb:22:in `run'
from /usr/lib/ruby/gems/1.8/gems/rspec-1.3.2/lib/spec/runner/options.rb:153:in `run_examples'
from /usr/lib/ruby/gems/1.8/gems/rspec-1.3.2/lib/spec/runner.rb:61:in `run'
from /usr/lib/ruby/gems/1.8/gems/rspec-1.3.2/lib/spec/runner.rb:45
/usr/lib/ruby/gems/1.8/gems/activesupport-2.3.14/lib/active_support/whiny_nil.rb:52:in `method_missing': undefined method `metadata' for nil:NilClass (NoMethodError)
from /usr/lib/ruby/gems/1.8/gems/ci_reporter-1.7.0/lib/ci/reporter/rspec.rb:46:in `name'
from /usr/lib/ruby/gems/1.8/gems/ci_reporter-1.7.0/lib/ci/reporter/test_suite.rb:146
from /usr/lib/ruby/gems/1.8/gems/ci_reporter-1.7.0/lib/ci/reporter/test_suite.rb:140:in `each'
from /usr/lib/ruby/gems/1.8/gems/ci_reporter-1.7.0/lib/ci/reporter/test_suite.rb:140
from /usr/lib/ruby/gems/1.8/gems/builder-2.1.2/lib/builder/xmlbase.rb:134:in `call'
from /usr/lib/ruby/gems/1.8/gems/builder-2.1.2/lib/builder/xmlbase.rb:134:in `_nested_structures'
from /usr/lib/ruby/gems/1.8/gems/builder-2.1.2/lib/builder/xmlbase.rb:58:in `method_missing'
from /usr/lib/ruby/gems/1.8/gems/ci_reporter-1.7.0/lib/ci/reporter/test_suite.rb:136:in `to_xml'
from /usr/lib/ruby/gems/1.8/gems/ci_reporter-1.7.0/lib/ci/reporter/test_suite.rb:86
from /usr/lib/ruby/gems/1.8/gems/ci_reporter-1.7.0/lib/ci/reporter/test_suite.rb:85:in `each'
from /usr/lib/ruby/gems/1.8/gems/ci_reporter-1.7.0/lib/ci/reporter/test_suite.rb:85
from /usr/lib/ruby/gems/1.8/gems/builder-2.1.2/lib/builder/xmlbase.rb:134:in `call'
from /usr/lib/ruby/gems/1.8/gems/builder-2.1.2/lib/builder/xmlbase.rb:134:in `_nested_structures'
from /usr/lib/ruby/gems/1.8/gems/builder-2.1.2/lib/builder/xmlbase.rb:58:in `method_missing'
from /usr/lib/ruby/gems/1.8/gems/ci_reporter-1.7.0/lib/ci/reporter/test_suite.rb:84:in `to_xml'
from /usr/lib/ruby/gems/1.8/gems/ci_reporter-1.7.0/lib/ci/reporter/report_manager.rb:18:in `write_report'
from /usr/lib/ruby/gems/1.8/gems/ci_reporter-1.7.0/lib/ci/reporter/report_manager.rb:17:in `open'
from /usr/lib/ruby/gems/1.8/gems/ci_reporter-1.7.0/lib/ci/reporter/report_manager.rb:17:in `write_report'
from /usr/lib/ruby/gems/1.8/gems/ci_reporter-1.7.0/lib/ci/reporter/rspec.rb:203:in `write_report'
from /usr/lib/ruby/gems/1.8/gems/ci_reporter-1.7.0/lib/ci/reporter/rspec.rb:207:in `new_suite'
from /usr/lib/ruby/gems/1.8/gems/ci_reporter-1.7.0/lib/ci/reporter/rspec.rb:114:in `example_group_started'
from /usr/lib/ruby/gems/1.8/gems/rspec-1.3.2/lib/spec/runner/reporter.rb:19:in `example_group_started'
from /usr/lib/ruby/gems/1.8/gems/rspec-1.3.2/lib/spec/runner/reporter.rb:18:in `each'
from /usr/lib/ruby/gems/1.8/gems/rspec-1.3.2/lib/spec/runner/reporter.rb:18:in `example_group_started'
from /usr/lib/ruby/gems/1.8/gems/rspec-1.3.2/lib/spec/example/example_group_methods.rb:115:in `notify'
from /usr/lib/ruby/gems/1.8/gems/rspec-1.3.2/lib/spec/example/example_group_methods.rb:96:in `run'
from /usr/lib/ruby/gems/1.8/gems/rspec-1.3.2/lib/spec/runner/example_group_runner.rb:23:in `run'
from /usr/lib/ruby/gems/1.8/gems/rspec-1.3.2/lib/spec/runner/example_group_runner.rb:22:in `each'
from /usr/lib/ruby/gems/1.8/gems/rspec-1.3.2/lib/spec/runner/example_group_runner.rb:22:in `run'
from /usr/lib/ruby/gems/1.8/gems/rspec-1.3.2/lib/spec/runner/options.rb:153:in `run_examples'
from /usr/lib/ruby/gems/1.8/gems/rspec-1.3.2/lib/spec/runner/command_line.rb:9:in `run'
from /usr/lib/ruby/gems/1.8/gems/rspec-1.3.2/bin/spec:5
from /usr/bin/rcov:508:in `load'
from /usr/bin/rcov:508
Recording test results
答案 0 :(得分:4)
ci_reporter中的一个例外是2012年2月21日修复的错误(请参阅https://github.com/nicksieger/ci_reporter/commit/48d7389f19bace8e7765d889bcd4425e3aab699b)但该修复程序不是截至2012年4月26日的任何已发布版本的一部分。解决方案发布之前的解决方案是获取来自github的宝石。如果您使用的是bundler,请将您的Gemfile条目更改为:
gem 'ci_reporter', :git => 'git://github.com/nicksieger/ci_reporter.git'