Come posso configurare RSpec a livello globale per mantenere attive le opzioni '--color' e '--format specdoc'


156

Come posso impostare la configurazione globale per RSpec in Ubuntu.

In particolare, --color e --format specdoc restano attivi su tutti i miei progetti (ovvero ogni volta che eseguo rspec ovunque).

Risposte:


238

Come puoi vedere nei documenti qui , l'uso previsto è la creazione ~/.rspece in esso l'inserimento delle opzioni, ad esempio --color.

Per creare rapidamente un ~/.rspecfile con l' --coloropzione, basta eseguire:

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

17
--ttyè richiesto anche se si desidera il colore anche quando si utilizzano cercapersone.
Adam Spires,

2
Quali sono i pro / contro dell'utilizzo .rspeco spec_helper.rb? @shamaoke @christoph
Ian Vaughan,

2
Un grande vantaggio della ~/.rspecsoluzione è la portabilità. Ad esempio, il nostro server CI non gestisce molto bene l'output a colori. Con il file di configurazione dir dell'utente, possiamo facilmente adottare ambienti diversi.
Christoph Petschnig,

2
Un'altra nota rilevante è che è possibile creare il file .rspec a livello di progetto e applicarlo solo a quel progetto. Ho pensato che alcuni potrebbero voler sapere anche qui.
Nick Gronow,

Spostando le mie opzioni di configurazione da spec_helper.rb a .rspec ho risolto questo problema per me.
Edward Anderson,

149

Si può anche usare un spec_helper.rbfile in tutti i progetti. Il file dovrebbe includere quanto segue:

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

Qualsiasi file di esempio deve richiedere che l'helper sia in grado di utilizzare tali opzioni.


1
La domanda originale richiede una configurazione globale, questa è una specifica del progetto. Utile, ma non la risposta corretta, a differenza dell'abyx che punta al .rspecfile.
Olivier Lacan,

8
Una ricerca di informazioni sulla configurazione e sui formatter di RSpec porta a questa pagina, quindi ho apprezzato questa risposta, anche se era per la domanda sbagliata :-)
phatmann

3
color_enabledè oracolor
elado l'

12

Nel tuo spec_helper.rbfile, includi la seguente opzione:

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

È quindi necessario richiedere in ogni *_spec.rbfile che dovrebbe utilizzare tale opzione.


Ciao grazie - saresti in grado di elaborare quanto segue: "Quindi devi richiedere in ogni file * _spec.rb che dovrebbe usare quell'opzione." Non capisco.
BKSpurgeon,

Ognuno dei tuoi file * _spec.rb inizia di solito con "spec_helper", non dovresti dimenticarlo.
Christoph Petschnig,


2

O semplicemente aggiungi alias spec=spec --color --format specdocal tuo file ~ / .bashrc come me.


5
Questa soluzione non è molto portatile. La risposta corretta è @abyx con l'utilizzo .rspec, poiché quando viene effettuato il check-in con il progetto, chiunque lo ottenga avrà le stesse impostazioni.
Ian Vaughan,

1
Ma la domanda era "configurazione globale per RSpec in Ubuntu", "in tutti i miei progetti" non in modalità portatile né in modalità cooperativa.
zzeroo,

3
Humm, credo che tu abbia ragione, la tua risposta si riferisce direttamente al PO. Stavo pensando a un quadro più ampio, ma penso ancora che la risposta migliore fosse @abyx, se l'OP si abitua a configurare correttamente i progetti, altri ne trarranno beneficio, forse non ora, dato che potrebbe lavorare da solo, ma le buone pratiche sono proprio questo. Scusa, un po 'ranty, solo il mio modo di pensare.
Ian Vaughan,

1
@zzeroo @Ian: nota che mettere il .rspecfile nella home directory dell'utente (come ho già detto nella mia risposta) funziona globalmente per tutte le invocazioni dell'utente di rspec. Questo è in effetti più solido dell'uso di alias, poiché alcune gemme / altri alias / strumenti che l'utente potrebbe utilizzare non necessariamente userebbero l'alias
abyx

1
Ora tornando a questa domanda ed essendo un po 'più vecchio e più saggio, concordo sul fatto che l'impostazione del file dot .rspec sia ora un'opzione migliore. Aggiornamento della mia risposta approvata ad abyx, grazie mille zzero per aver risposto alla mia domanda al meglio nel 2010. :)
Evolve il

1

Una cosa da tenere presente è l'impatto dei diversi modi di eseguire RSpec.

Stavo cercando di attivare l'opzione con il seguente codice in spec / spec_helper.rb -

Rspec.configure do |config|
  config.tty = $stdout.tty?
end
  1. chiamando direttamente il binario 'rspec' - o come 'bundle exec rspec' e controllando $ stdout.tty? tornerà vero.
  2. invocare l'attività 'spec rake' - o come 'bundle exec rake spec' - Rake invocherà rspec in un processo separato e $ stdout.tty? restituirà false.

Alla fine ho usato l'opzione ~ / .rspec, con solo --tty come contenuto. Funziona bene per me e mantiene pulito l'output del nostro server CI.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.