我使用guard-yard自动运行YARD。然而它的输出真的很烦人,并且很难读取RSpec输出(这更有趣)。
guard 'yard' do
watch(%r{app/.+\.rb})
watch(%r{lib/.+\.rb})
watch(%r{ext/.+\.c})
end
问。如何使这个Guard插件的输出静音?
答案 0 :(得分:3)
码材工具输出可以重定向。 AFAIK您无法禁用所有通知。
FWIW:这是我在Guardfile
设置码的方式来隐藏部分输出:
guard :yard, stdout: 'log/yard.log', stderr: 'log/yard_error.log' do
watch(%r{app/.+\.rb})
watch(%r{lib/.+\.rb})
end
答案 1 :(得分:1)
我遇到了同样的问题而且我使用了interctor:off吃了Guardfile的开头,所以你的代码应该是这样的:
interactor :off
guard 'yard' do
watch(%r{app/.+\.rb})
watch(%r{lib/.+\.rb})
watch(%r{ext/.+\.c})
end
要在后台运行它并且在控制台中没有收到任何输出,您应该运行命令:
bundle exec guard <options> >/dev/null 2>&1 &
答案 2 :(得分:1)
group :stuff, halt_on_fail: true do
guard :rspec, cmd: 'bundle exec rspec' do
# (stuff for guard-rspec template goes here
end
guard :yard do
watch(%r{app/.+\.rb})
watch(%r{lib/.+\.rb})
watch(%r{ext/.+\.c})
end
end
或......
guard :rspec, cmd: 'bundle exec rspec' do
# (stuff for guard-rspec template goes here
end
guard :yard do
watch(%r{app/.+\.rb})
watch(%r{lib/.+\.rb})
watch(%r{ext/.+\.c})
end
并限制后卫只运行rspec bundle exec guard -g rspec
scope
命令在组/插件之间切换您还可以使用Pry交互器中的scope
命令告诉Guard您对运行感兴趣的内容,例如
# tells guard to just run rspec
[1] guard(main)> scope rspec
[2] RSpec guard(main)>
# or just yard
[1] guard(main)> scope yard
[2] Yard guard(main)>
# or everything again
[1] guard(main)> scope default
[2] Default guard(main)>
答案 3 :(得分:0)
这是一个重要的解决方案,但它确实有效。
# In your Guardfile
guard 'yard' do
...
end
# This must after the `guard 'yard' block`, or the Guard::Yard constant won't be
# defined yet.
class Guard::Yard::Server
def UI.info(*args); end
end
编辑:没关系!这会停止info语句,但不会停止打印机架服务器信息。