web-dev-qa-db-fra.com

Comment puis-je dire à Rails d'utiliser RSpec au lieu de test-unit lors de la création d'une nouvelle Rails app?

J'ai test-unit installé et rspec installé (avec -core, -expectations, -mocks et -Rails version 2.6.x). Quand je lance la commande Rails new foo, il utilise test-unit pour générer les fichiers de raccord de test au lieu de rspec.

Existe-t-il une option permettant à Rails d'utiliser rspec pour générer les tests à la place)?

148
aarona

Ce qui suit devrait fonctionner:

en ligne de commande:

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

dans Gemfile:

gem 'rspec-Rails'

en ligne de commande:

bundle install
Rails g rspec:install
257
Zabba

Créez votre nouvelle application Rails en tant que:

Rails new <app_name> -T

Ou supprimez votre répertoire test de votre application existante:

rm -rf test/

Faites une entrée dans votre Gemfile:

gem 'rspec-Rails'

Depuis la ligne de commande, installez la gemme

$ bundle install

A partir de la ligne de commande, installez rspec dans votre application:

$ Rails g rspec:install

Votre application Rails utilise maintenant RSpec au lieu de test-unit.

72
Sayuj

Une fois que vous avez créé votre application Rails avec:

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

Ajoutez la gemme RSpec à votre Gemfile de la manière suivante:

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

En ligne de commande, écrivez:

bundle install  # this will install the missing gems

Maintenant, vous devez installer RSpec en lançant:

Rails generate rspec:install

Cela générera les fichiers suivants:

create  .rspec
create  spec
create  spec/spec_helper.rb
create  spec/Rails_helper.rb

J'ai fortement recommandé de lire tous les commentaires spec_helper et Rails_helper pour bien comprendre le rôle de chaque option.

Une fois que tout est défini, vous pouvez exécuter tous vos tests avec:

bundle exec rspec

Vous pouvez en savoir plus sur les configurations recommandées spec_helper et Rails_helper sur https://kolosek.com/Rails-rspec-setup .

5
Nesha Zoric

Je suis un nouveau développeur et je viens de créer un Rails flag (-rspec) pour résoudre le problème de OP. Il supprime Test :: Unit et insère la gemme Rails-rspec avec un script bash Le script peut être modifié pour aider les développeurs Linux en ajoutant automatiquement la gem therubyracer ou en créant des drapeaux et gemsets personnalisés (peut-être en allant spécifiquement à cette ligne et en supprimant le commentaire).

Voici le Gist && J'espère que cela aide quelqu'un. https://Gist.github.com/MTen/8310116

4
MTen