【问题标题】:Rake / Rspec: How to suppress / quiet / silent the first output line showing the command with --pattern ?Rake / Rspec:如何抑制/静默/静默显示带有 --pattern 的命令的第一行输出?
【发布时间】:2014-12-05 12:41:45
【问题描述】:

问题:

如果我使用以下命令之一通过Rake 运行ServerSpec(基于RSpec):

  • rake
  • rake spec
  • rake spec:all
  • rake spec:<host>
  • bundle exec rake
  • ...

Rake 在 serverspec 输出之前将它执行的命令打印到stdout

/usr/bin/ruby1.9.1 
-I/var/lib/gems/1.9.1/gems/rspec-core-3.1.6/lib:/var/lib/gems/1.9.1/gems/rspec-support-3.1.2/lib 
/var/lib/gems/1.9.1/gems/rspec-core-3.1.6/exe/rspec 
--pattern spec/<host>/\*_spec.rb

如果我像这样手动将目标主机传递给rspec ...

TARGET_HOST=<host> rspec

...这条线确实出现。

问题:

如何防止Rake 输出这一行/命令?


我正在使用serverspec-init 生成的默认 Rakefile。

require 'rake'
require 'rspec/core/rake_task'

task :spec    => 'spec:all'
task :default => :spec

namespace :spec do
  targets = []
  Dir.glob('./spec/*').each do |dir|
    next unless File.directory?(dir)
    targets << File.basename(dir)
  end

  task :all     => targets
  task :default => :all

  targets.each do |target|
    desc "Run serverspec tests to #{target}"
    RSpec::Core::RakeTask.new(target.to_sym) do |t|
      ENV['TARGET_HOST'] = target
      t.pattern = "spec/#{target}/*_spec.rb"
    end
  end
end

【问题讨论】:

标签: ruby rspec rake serverspec


【解决方案1】:

尝试改变

RSpec::Core::RakeTask.new(target.to_sym) do |t|
  ENV['TARGET_HOST'] = target
  t.pattern = "spec/#{target}/*_spec.rb"
end

RSpec::Core::RakeTask.new(target.to_sym) do |t|
  ENV['TARGET_HOST'] = target
  t.pattern = "spec/#{target}/*_spec.rb"
  t.verbose = false
end

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-08-07
    • 2011-01-26
    • 1970-01-01
    • 2019-06-19
    • 2020-06-12
    • 1970-01-01
    • 2022-11-11
    相关资源
    最近更新 更多