如何在全局范围内配置 RSpec 以保持“—— color”和“—— format specdoc”选项处于打开状态

如何在 Ubuntu 中设置 RSpec 的全局配置。

具体来说,在我的所有项目中(即每次在任何地方运行 rspec) ,—— color 和—— format specdoc 都保持打开状态。

57502 次浏览

如果您使用 rake 来运行 rspec 测试,那么您可以编辑 spec/spec.opts

Http://rspec.info/rails/runners.html

或者像我一样简单地将 alias spec=spec --color --format specdoc添加到 ~/. bashrc 文件中。

还可以在所有项目中使用 spec_helper.rb文件:

RSpec.configure do |config|
# Use color in STDOUT
config.color = true


# Use color not only in STDOUT but also in pagers and files
config.tty = true


# Use the specified formatter
config.formatter = :documentation # :progress, :html,
# :json, CustomFormatterClass
end

任何示例文件都必须要求助手能够使用该选项。

spec_helper.rb文件中,包含以下选项:

RSpec.configure do |config|
config.color_enabled = true
end

然后,您必须在每个应该使用该选项的 *_spec.rb文件中要求。

正如您可以在文档 给你中看到的,预期的用途是创建 ~/.rspec,并在其中放置您的选项,如 --color

要使用 --color选项快速创建 ~/.rspec文件,只需运行:

echo '--color' >> ~/.rspec

需要注意的一点是运行 RSpec 的不同方式的影响。

我试图用 spec/spec _ helper. rb-中的以下代码打开该选项

Rspec.configure do |config|
config.tty = $stdout.tty?
end
  1. 直接调用‘ rspec’二进制文件——或者作为‘ bundle exec rspec’调用并检查 $stdout.tty? 将返回 true。
  2. 调用“ Rake spec”任务——或者作为“ bundle exec Rake spec”—— Rake 将在一个单独的进程中调用 rspec,而 $stdout.tty?将会返回虚假。

最后我使用了 ~/。选项,其内容仅为—— tty。对我来说工作良好,并保持我们的 CI 服务器输出干净。