RSpecをグローバルに設定して、「-color」オプションと「--format specdoc」オプションをオンにしておく方法


156

UbuntuでRSpecのグローバル構成を設定するにはどうすればよいですか。

特に、--colorと--format specdocは、すべてのプロジェクトにわたって(つまり、どこかでrspecを実行するたびに)オンのままです。

回答:


238

ここのドキュメントわかるように、使用目的は~/.rspec、などのオプションを作成してそこに配置すること--colorです。

オプションで~/.rspecファイルをすばやく作成するには、次のコマンドを--color実行します。

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

17
--ttyページャーを使用している場合でもカラーが必要な場合も必要です。
アダムスパイアーズ

2
いただきまし長所/短所使用します.rspecspec_helper.rb?@shamaoke @christoph
Ian Vaughan

2
この~/.rspecソリューションの大きな利点の1つは、移植性です。たとえば、CIサーバーはカラー出力をうまく処理しません。ユーザーdir構成ファイルを使用すると、さまざまな環境に簡単に適応できます。
Christoph Petschnig 2014年

2
関連するもう1つの注意事項は、プロジェクトレベルで.rspecファイルを作成し、そのプロジェクトにのみ適用することができるということです。ここでもそれを知りたい人がいるかもしれません。
Nick Gronow、2014年

構成オプションをspec_helper.rbから.rspecに移動すると、この問題は解決しました。
エドワードアンダーソン

149

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

サンプルファイルでは、そのオプションを使用できるようにヘルパーが必要です。


1
元の質問はグローバル構成を要求しますが、これはプロジェクト固有のものです。.rspecファイルを指すabyxとは異なり、有用ですが、正解ではありません。
Olivier Lacan 2012年

8
RSpecの構成とフォーマッターに関する情報を検索すると、このページに移動するので、間違った質問であってもこの回答に感謝します:-)
phatmann

3
color_enablediscolor
elado 2014

12

あなたにはspec_helper.rb、ファイル、次のオプションが含まれます。

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

次に、*_spec.rbそのオプションを使用する必要がある各ファイルで必要があります。


こんにちはありがとう-あなたは以下について詳しく説明することができますか?わかりません。
BKSpurgeon 2016年

通常、各* _spec.rbファイルはrequire "spec_helper"で始まります。これを忘れないでください。
Christoph Petschnig 2016年


2

または、単純にalias spec=spec --color --format specdoc〜/ .bashrcファイルに追加してください。


5
このソリューションはあまり移植性がありません。正しい答えは@abyxを使用する.rspecことです。プロジェクトでチェックインしたとき、それを取得する他の誰もが同じ設定を取得するためです。
Ian Vaughan

1
しかし、問題は「UbuntuでのRSpecのグローバル構成」、「すべてのプロジェクトにわたって」、移植可能でもcoopモードでもないことでした。
zzeroo

3
うーん、私はあなたの権利を推測します。あなたの答えはOPに直接関係しています。私はもっ​​と全体像を考えていましたが、それでもより良い答えは@abyxであったと思います。OPがプロジェクトの構成に正しく使用されれば、他の人が恩恵を受けるでしょう。申し訳ありませんが、私の態度だけでは、少し不確かです。
Ian Vaughan

1
@zzeroo @Ian:(.rspec私の回答で述べたように)ファイルをユーザーのホームディレクトリに配置すると、ユーザーのrspecのすべての呼び出しでグローバルに機能することに注意してください。ユーザーが使用する可能性のある一部のgems /その他のエイリアス/ツールは必ずしもエイリアスを使用するとは限らないため、実際にはエイリアスを使用するよりも確実です
abyx

1
さて、この質問に戻り、少し古く賢くなったので、.rspecドットファイルを設定する方がより良いオプションであることに同意します。abyxへの私の承認済みの回答を更新しました。2010年に私の質問に最もよく答えてくれたzzeroに感謝します。:)
Evolve

1

注意すべきことの1つは、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?falseを返します。

最後に、私は〜/ .rspecオプションを使用し、その内容として--ttyのみを使用しました。私にとってはうまく機能し、CIサーバーの出力をクリーンに保ちます。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.