'--color'및 '--format specdoc'옵션을 유지하도록 RSpec을 전체적으로 구성하는 방법


156

Ubuntu에서 RSpec에 대한 전역 구성을 설정하는 방법

특히, --color 및 --format specdoc은 모든 프로젝트에서 (즉, 어디서나 rspec을 실행할 때마다) 켜져 있습니다.

답변:


238

여기 문서 에서 볼 수 있듯이 의도 된 용도는 다음 ~/.rspec과 같은 옵션을 작성 하고 넣는 것 --color입니다.

옵션을 사용하여 ~/.rspec파일 을 빠르게 만들려면 --color다음을 실행하십시오.

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

17
--tty호출기를 사용할 때에도 색상을 원할 경우에도 필요합니다.
Adam Spiers

2
무슨 사용하는 장점 / 단점 .rspec이나 spec_helper.rb? @shamaoke @christoph
Ian Vaughan

2
~/.rspec솔루션 의 가장 큰 장점은 이식성입니다. 예를 들어 CI 서버는 컬러 출력을 잘 처리하지 못합니다. 사용자 디렉토리 설정 파일을 사용하면 다양한 환경에 쉽게 적용 할 수 있습니다.
Christoph Petschnig

2
다른 관련 참고 사항은 프로젝트 레벨에서 .rspec 파일을 작성하여 해당 프로젝트에만 적용 할 수 있다는 것입니다. 일부 사람들은 여기서도 알고 싶어 할 것입니다.
Nick Gronow

구성 옵션을 spec_helper.rb에서 .rspec으로 이동하면이 문제가 해결되었습니다.
Edward Anderson

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

8
RSpec 구성 및 포맷터에 대한 정보를 검색하면이 페이지에 하나가 표시되므로 잘못된 질문
이더라도이

3
color_enabled지금color
elado

12

당신의에서 spec_helper.rb파일, 다음 옵션을 포함 :

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

그런 다음 각 *_spec.rb파일 에서 해당 옵션을 사용해야합니다.


감사합니다. "다음 옵션을 사용하려면 각 * _spec.rb 파일에 있어야합니다." 이해가 안 돼요
BKSpurgeon

각 * _spec.rb 파일은 일반적으로 require "spec_helper"로 시작합니다.이를 잊지 말아야합니다.
Christoph Petschnig


2

또는 단순히 alias spec=spec --color --format specdoc나와 같은 ~ / .bashrc 파일에 추가 하십시오.


5
이 솔루션은 이식성이 떨어집니다. 정답은 @abyx를 사용 .rspec하는 것입니다. 프로젝트에 체크인하면 다른 사람이 동일한 설정을 갖습니다 .
Ian Vaughan

1
그러나 문제는 "우분투의 RSpec에 대한 전역 구성", "모든 프로젝트에서"휴대용 또는 콥 모드가 아니라는 점이었습니다.
zzeroo

3
흠, 나는 당신의 권리, 당신의 대답은 OP와 직접 관련이 있다고 생각합니다. 나는 더 큰 그림을 생각하고 있었지만 여전히 더 좋은 대답은 @abyx라고 생각합니다 .OP가 프로젝트를 올바르게 구성하는 데 익숙해지면 다른 사람들이 혜택을 볼 것입니다. 미안해, 몸집이 작은 내 생각
Ian Vaughan

1
@zzeroo @Ian : .rspec파일을 사용자의 홈 디렉토리에 넣으면 (내 대답에서 언급했듯이) rspec의 모든 사용자 호출에 대해 전 세계적으로 작동합니다. 사용자가 사용할 수있는 일부 보석 / 기타 별칭 / 툴은 반드시 별칭을 사용할 필요는 없기 때문에 이는 별칭을 사용하는 것보다 더 견고합니다.
abyx

1
이제이 질문으로 돌아와 조금 더 오래되고 더 현명한 나는 .rspec 도트 파일을 설정하는 것이 더 나은 옵션이라는 데 동의합니다. 승인 된 abyx에 대한 답변을 업데이트했습니다. 2010 년에 가장 잘 답변 해 주신 zzero에 감사드립니다. :)
Evolve

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? 거짓을 반환합니다.

결국 나는 ~ / .rspec 옵션을 --tty를 내용으로 사용했습니다. 나를 위해 잘 작동하고 CI 서버 출력을 깨끗하게 유지합니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.