新しいRailsアプリを作成するときに、test-unitではなくRSpecを使用するようにRailsに指示するにはどうすればよいですか?


152

私がしているtest-unitインストールし、rspec(一緒にインストールされ-core-expectations-mocksおよび-railsバージョン2.6.xの)。コマンドを実行すると、ではなく、テストスタブファイルの生成rails new fooに使用test-unitされますrspec

代わりに、rspecを使用してテストを生成するようにRailsに指示できるオプションはありますか?

回答:


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内にあります。また、でアプリを生成する必要はありません。dirを削除すれば機能します。developmentGemfile-Ttest
ライアンビッグ

1
RSpecの:g.test_frameworkにRSpecの:あなたはg.test_framework =からコードを編集することができます
ディーパックLamichhane

8
@RyanBigg:-Tオプションを使用"rails/test_unit/railtie"して、コメントアウトしますapplication.rb
Giang Nguyen

13
rspec-railsgem を追加するときは、テストして開発することが重要です。そうしないと、上記の手順を実行しても、ジェネレーターはRSpecを使用しません。
februaryInk 2015年

73

新しいRailsアプリケーションを次のように作成します。

rails new <app_name> -T

またはtest、既存のアプリケーションからディレクトリを削除します。

rm -rf test/

Gemfileにエントリを作成します。

gem 'rspec-rails'

コマンドラインからgemをインストールします

$ bundle install

コマンドラインから、rspecをアプリケーションにインストールします。

$ rails g rspec:install

これで、railsアプリケーションはtest-unitではなくRSpecを使用します。


2
そのリストに「バンドルインストール」ステップがありませんでした。追加しました。
cczona 2012年

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

推奨されるspec_helperおよびrails_helper構成の詳細については、https: //kolosek.com/rails-rspec-setupを参照してください


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.