在rake中指定时,将忽略RakeTask.rspec_opts

时间:2012-04-01 07:29:13

标签: rspec rake formatter

我有一个RakeTask,它在文件test.rake中定义为

RSpec::Core::RakeTask.new(:pit) do |spec|
  spec.ruby_opts = "-I lib:spec"
  spec.rspec_opts = "--format html --out output.html --format documentation"
  spec.pattern = 'test.rb'
end

task :pi => [:report, :pit]

当我运行命令

  

rake -f test.rake pi

,测试运行正常,但是根据文档格式化程序我没有看到任何输出,也没有生成output.html。

然而,当我运行命令

  

rspec test.rb --format html --out output.html --format documentation

测试运行正常,输出以文档格式打印,output.html也正确生成。

当我运行rake命令时,我也可以正确地看到参数,实际命令看起来像

  

ruby​​.exe -I lib:spec -S rspec test.rb --format html --out output.html    - 格式文件

因此,参数传递正确,格式选项仍无效。你能帮我解决一下这个谜。

2 个答案:

答案 0 :(得分:0)

我使用

时遇到了同样的问题
spec.rspec_opts "--format documentation --color"

- 未传递颜色参数。

唯一的解决方案是在spec_helper.rb中设置它 - 而不是在rake任务中

RSpec.configure do |config|
  config.color = true
  config.tty = true
  config.formatter = :documentation # :progress, :html, :textmate
end

答案 1 :(得分:0)

尝试一下:

spec.rspec_opts = ["--format", "html", "--out", "output.html", "--format", "documentation"]