RSpec'i global olarak '--color' ve '--format specdoc' seçeneklerini açık tutacak şekilde nasıl yapılandırırım


156

Ubuntu'da RSpec için genel yapılandırmayı nasıl ayarlarım?

Özellikle, --color ve --format specdoc tüm projelerim boyunca açık kalıyor (yani her yerde rspec çalıştırdığımda).

Yanıtlar:


238

Buradaki dokümanlarda görebileceğiniz gibi, amaçlanan kullanım oluşturmak ~/.rspecve içinde seçeneklerinizi koymaktır --color.

Seçeneği kullanarak hızlı bir şekilde ~/.rspecdosya oluşturmak için şunu --colorçalıştırın:

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

17
--ttyçağrı cihazlarını kullanırken bile renk istiyorsanız, gereklidir.
Adam Spires

2
Kullanmak için artıları / eksileri nedir .rspecveya spec_helper.rb? @shamaoke @christoph
Ian Vaughan

2
~/.rspecÇözümün en büyük avantajlarından biri taşınabilirliktir. Örneğin CI sunucumuz renk çıktısını çok iyi işlemiyor. User dir config dosyası ile farklı ortamlara kolayca uyum sağlayabiliriz.
Christoph Petschnig

2
İlgili diğer bir not, .rspec dosyasını proje düzeyinde oluşturabilmeniz ve yalnızca bu projeye uygulanmasını sağlayabilmenizdir. Sadece bazılarının burada da bilmek isteyebileceğini düşündüm.
Nick Gronow

Yapılandırma seçeneklerimi spec_helper.rb'den .rspec'e taşımak bu sorunu benim için çözdü.
Edward Anderson

149

Bir spec_helper.rbdosya tüm projelerde de kullanılabilir . Dosya aşağıdakileri içermelidir:

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

Herhangi bir örnek dosya, yardımcının bu seçenekleri kullanabilmesini gerektirir.


1
Orijinal soru küresel bir yapılandırma ister, bu projeye özgüdür. Faydalı, ancak doğru cevabı değil, .rspecdosyayı işaret eden abyx'lerin aksine .
Olivier Lacan

8
RSpec yapılandırması ve formatlayıcıları hakkında bilgi aramak bu sayfaya bir tane getiriyor, bu yüzden yanlış soru olsa bile bu cevabı takdir ettim :-)
phatmann

3
color_enabledşimdicolor
elado

12

Senin içinde spec_helper.rbdosyaya, aşağıdaki seçeneği içerir:

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

Daha sonra, *_spec.rbbu seçeneği kullanması gereken her dosyada gerekir.


Merhaba teşekkür ederim - aşağıdakileri ayrıntılı olarak açıklayabilir misiniz: "O zaman bu seçeneği kullanması gereken her * _spec.rb dosyasında gerekli olmalıdır." anlamıyorum.
BKSpurgeon

* _Spec.rb dosyanızın her biri genellikle "spec_helper" gerektirir ile başlar, bunu unutmamalısınız.
Christoph Petschnig


2

Veya sadece alias spec=spec --color --format specdocbenim gibi ~ / .bashrc dosyanıza ekleyin.


5
Bu çözüm çok portatif değil. Doğru cevap kullanarak @abyx .rspec, projeye teslim edildiğinde, onu alan herkes aynı ayarları alacaktır.
Ian Vaughan

1
Ama soru "Ubuntu'da RSpec için global yapılandırma", "tüm projelerimde" taşınabilir veya küme modu değil.
zzeroo

3
Humm, sanırım hakkın, cevabın doğrudan OP ile ilgili. Daha büyük bir resim düşünüyordum, ama yine de daha iyi cevabın @abyx olduğunu düşünüyorum, eğer OP projeleri doğru bir şekilde yapılandırmak için kullanılırsa, diğerleri şimdi faydalanabilir, belki şimdi yalnız çalıştığı için değil, ama iyi uygulamalar sadece. Üzgünüm, biraz ranty, sadece düşünce tarzım.
Ian Vaughan

1
@zzeroo @Ian: .rspecDosyayı kullanıcının ana dizinine koymanın (cevabımda belirttiğim gibi) kullanıcının rspec'in tüm çağrıları için global olarak çalıştığını unutmayın. Bu, takma ad kullanmaktan daha sağlamdır, çünkü kullanıcının kullanabileceği bazı taşlar / diğer takma adlar / araçlar takma adı kullanmaz
abyx

1
Şimdi bu soruya geri dönüp biraz daha eski ve daha akıllı olmak, .rspec nokta dosyasını ayarlamanın artık daha iyi bir seçenek olduğunu kabul ediyorum. Abyx'e onaylanan cevabımı güncelleyerek, 2010'da en iyi sorumu cevapladığınız için çok zzero teşekkürler. :)
Evolve

1

Dikkat edilmesi gereken bir şey, RSpec'i çalıştırmanın farklı yollarının etkisidir.

Spec / spec_helper.rb aşağıdaki kod ile seçeneği açmaya çalışıyordum -

Rspec.configure do |config|
  config.tty = $stdout.tty?
end
  1. doğrudan 'rspec' ikili kodunu çağırmak - ya da 'bundle exec rspec' olarak çağırmak ve $ stdout.tty'yi kontrol etmek? doğru dönecektir.
  2. 'rake spec' görevini çağırmak - veya 'bundle exec rake spec' olarak - Rake ayrı bir işlemde rspec'i ve $ stdout.tty? yanlış döndürür.

Sonunda ~ / .rspec seçeneğini kullandım, içeriği sadece --tty ile. Benim için iyi çalışıyor ve CI sunucu çıktımızı temiz tutuyor.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.