새로운 Rails 앱을 만들 때 Rails가 테스트 유닛 대신 RSpec을 사용하도록하려면 어떻게해야합니까?


152

나는 한 test-unit설치와 rspec(과 함께 설치 -core, -expectations, -mocks-rails2.6.x 버전). 명령을 실행할 때 대신 테스트 스텁 파일을 생성하는 rails new foo데 사용 test-unit됩니다 rspec.

대신 rspec을 사용하여 테스트를 생성하도록 레일에 지시 할 수있는 옵션이 있습니까?

답변:


262

다음이 작동해야합니다.

명령 행에서 :

rails new MYAPP -T # The -T option tells rails not to include Test::Unit

Gemfile에서 :

gem 'rspec-rails'

명령 행에서 :

bundle install
rails g rspec:install

나는 그 단계 중 일부가 잘못되었다고 생각합니다. 올바른 순서로 수행하면 작동하는 것처럼 보입니다. 답변을 수정하면 승인 된 것으로 표시됩니다.
aarona

60
generator.rb이니셜 라이저 가 필요하지 않습니다 . 이것은 RSpec의 railtie가 처리합니다. 필요한 것은 발전기 그룹에 필요한 그룹 rspec-rails내에 있습니다. 로 앱을 생성 할 필요가 없습니다 .developmentGemfile-Ttest 디렉토리를 하면 작동합니다.
Ryan Bigg

1
g.test_framework = : rspec에서 g.test_framework : rspec로 코드를 편집 할 수 있습니까?
Deepak Lamichhane

8
@RyanBigg : -T 옵션으로 "rails/test_unit/railtie"댓글을 달았습니다application.rb
Giang Nguyen

13
rspec-rails젬 을 추가 할 때 젬을 테스트 하고 개발 하는 것이 중요 합니다. 그렇지 않으면 위 단계를 수행하더라도 생성기가 RSpec을 사용하지 않습니다.
2

73

다음과 같이 새 레일 애플리케이션을 작성하십시오.

rails new <app_name> -T

또는 test기존 애플리케이션에서 디렉토리를 제거하십시오 .

rm -rf test/

Gemfile에 항목을 작성하십시오.

gem 'rspec-rails'

명령 행에서 gem을 설치하십시오

$ bundle install

명령 행에서 rspec을 응용 프로그램에 설치하십시오.

$ rails g rspec:install

이제 Rails 애플리케이션은 테스트 단위 대신 RSpec을 사용합니다.


2
해당 목록에서 '번들 설치'단계가 누락되었습니다. 추가되었습니다.
cczona

6

다음을 사용하여 rails 응용 프로그램을 만든 후 :

rails new <app_name> -T  # to exclude Test::Unit

다음과 같은 방법으로 RSpec gem을 Gemfile에 추가하십시오 :

group :development, :test do
  gem "rspec-rails"
end

커맨드 라인에서 :

bundle install  # this will install the missing gems

이제 다음을 실행하여 RSpec을 설치해야합니다.

rails generate rspec:install

다음과 같은 파일이 생성됩니다.

create  .rspec
create  spec
create  spec/spec_helper.rb
create  spec/rails_helper.rb

각 옵션의 기능을 제대로 이해하려면 모든 spec_helper 및 rails_helper 주석을 읽어 보는 것이 좋습니다.

모든 것이 설정되면 다음을 사용하여 모든 테스트를 실행할 수 있습니다.

bundle exec rspec

https://kolosek.com/rails-rspec-setup 에서 권장 spec_helper 및 rails_helper 구성에 대한 자세한 내용을 읽을 수 있습니다 .


4

나는 새로운 개발자이고 방금 OP의 문제를 해결하기 위해 rails 플래그 (-rspec)를 만들었습니다. Test :: Unit을 제거하고 bash 스크립트와 함께 rails-rspec gem을 삽입합니다. Rubyracer gem을 자동으로 추가하거나 사용자 정의 플래그 및 gemset을 생성하여 Linux 개발자를 돕기 위해 스크립트를 수정할 수 있습니다. (특히 보석 라인으로 이동하여 주석을 삭제)

여기 요점이 있습니다. & 이것이 누군가를 도울 수 있기를 바랍니다. https://gist.github.com/MTen/8310116


0

railsCLI 로이를 수행하는 기본 방법은 없습니다 . test-unit: 없이 새로운 프로젝트를 생성

rails new rails-app --skip-test

그런 다음 rspec지침에 따라 새 Rails 앱에 통합하십시오.

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