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

Ale*_*raj 5 rake rspec 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]
Run Code Online (Sandbox Code Playgroud)

当我运行命令

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 --format documentation

因此,参数正确传递,格式选项仍然无效.你能帮我解决这个谜吗?

Pio*_*dny 0

我使用时也遇到了同样的问题

spec.rspec_opts "--format documentation --color"
Run Code Online (Sandbox Code Playgroud)

--color 参数未通过。

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

RSpec.configure do |config|
  config.color = true
  config.tty = true
  config.formatter = :documentation # :progress, :html, :textmate
end
Run Code Online (Sandbox Code Playgroud)