2012-01-09 4 views
5

Tôi không có vấn đề chạy file rspec sử dụng:Làm thế nào để có đầu ra JunitFormatter cho Rspec chạy bằng Rake?

rspec -f JUnitFormatter -o junit.xml spec_test.rb 

Tuy nhiên mỗi lần tôi cố gắng cào để thực hiện file spec, tôi nhận được lỗi sau

/formatters/junit_formatter.rb:28:in `require': no such file to load --  rspec/core/formatters/base_formatter (LoadError) 
from ./formatters/junit_formatter.rb:28 
from /usr/lib/ruby/1.8/spec/runner/option_parser.rb:151:in `require' 
from /usr/lib/ruby/1.8/spec/runner/option_parser.rb:151:in `invoke_requires' 
from /usr/lib/ruby/1.8/spec/runner/option_parser.rb:150:in `each' 
from /usr/lib/ruby/1.8/spec/runner/option_parser.rb:150:in `invoke_requires' 
from /usr/lib/ruby/1.8/spec/runner/option_parser.rb:105:in `initialize' 
from /usr/lib/ruby/1.8/optparse.rb:1267:in `call' 
from /usr/lib/ruby/1.8/optparse.rb:1267:in `parse_in_order' 
from /usr/lib/ruby/1.8/optparse.rb:1254:in `catch' 
from /usr/lib/ruby/1.8/optparse.rb:1254:in `parse_in_order' 
from /usr/lib/ruby/1.8/optparse.rb:1248:in `order!' 
from /usr/lib/ruby/1.8/spec/runner/option_parser.rb:134:in `order!' 
from /usr/lib/ruby/1.8/spec/runner.rb:51:in `options' 
from /usr/lib/ruby/1.8/spec/runner/command_line.rb:6:in `run' 
from /usr/bin/spec:3 

tập tin Rake của tôi:

require 'rubygems' 
require 'spec/rake/spectask' 

Spec::Rake::SpecTask.new(:spec) do |t| 
    t.spec_files = FileList['spec_*.rb'] 
    t.spec_opts = ['--options .rspec','--format JUnitFormatter' '--output junit.xml'] 
end 

Trả lời

6

Bạn cần yêu cầu trình định dạng junit trước khi sử dụng. Thêm đá quý 'rspec_junit_formatter' để Gemfile của bạn, bó cài đặt, sau đó chạy RSpec như thế này:

rspec -r rspec_junit_formatter --format RspecJunitFormatter -o junit.xml 

Source

Sửa do bình luận:

Bạn có thể có được điều này để làm việc bằng cách thêm một cào tùy chỉnh nhiệm vụ:

require 'rspec/core/rake_task' 
RSpec::Core::RakeTask.new(:spec) do |t| 
    t.fail_on_error = false 
    t.rspec_opts = "--no-drb -r rspec_junit_formatter --format RspecJunitFormatter -o junit.xml" 
end 
+0

Điều này không nói đến những lo ngại của OP về việc làm điều đó để làm việc từ cào – Eddie