たとえば、編集中の1つのファイルに対して、単一のspecファイルのテストを実行できるようにします。 rake spec
はすべての仕様を実行します。私のプロジェクトはRailsプロジェクトではないため、rake spec:doc
は機能しません。
これが重要かどうかわかりませんが、ここに私のディレクトリ構造があります。
./ Rakefile ./ lib ./ lib/cushion.rb ./ lib/cushion ./ lib/cushion/doc .rb ./ lib/cushion/db.rb ./ spec ./ spec/spec.opts ./ spec/spec_helper.rb ./ spec/db_spec.rb
または、rakeをスキップして、「rspec」コマンドを使用できます。
rspec path/to/spec/file.rb
あなたの場合、。/ spec/db_spec.rbファイルに適切なヘルパーが含まれている限り、問題なく動作するはずです。
古いバージョンのrspecを使用している場合は、次のとおりです。
spec path/to/spec/file.rb
生の呼び出し:
rake spec SPEC = spec/controllers/sessions_controller_spec.rb\ SPEC_OPTS = "-e \" cookieでログインする必要があります ""
これをエディターに組み込む方法を見つけてください。
この質問は古いものですが、1つのテストの実行方法を検索するときにGoogleの上部に表示されます。それが最近の追加かどうかはわかりませんが、仕様から単一のテストを実行するには、次のことができます:
rspec path/to/spec:<line number>
-line number-は、テストの一部を含む行番号です。たとえば、次のような仕様がある場合:
1:
2: it "should be awesome" do
3: foo = 3
4: foo.should eq(3)
5: end
6:
Spec/models/foo_spec.rbに保存されているとしましょう。次に、実行します:
rspec spec/models/foo_spec.rb:2
そして、その1つの仕様を実行するだけです。実際、その数は2〜5のいずれかです。
お役に立てれば!
-e
で* e * xampleテストケースの実際のテキストを使用することもできます!
だから:
it "shows the plane arrival time"
使用できます
rspec path/to/spec/file.rb -e 'shows the plane arrival time'
./scripts/spec path/to/spec/file.rb -e 'shows the plane arrival time'
ここでは熊手は必要ありません。
ヘルプから(spec -h):
-l, --line LINE_NUMBER Execute example group or example at given line.
(does not work for dynamically generated examples)
例:spec spec/runner_spec.rb -l 162
Rspecをgemではなくプラグインとしてインストールした場合、spec
実行可能ファイルはありません。
とにかく、Rubyを使用してファイルを実行するだけです。 rspecコードは、テストを実行するのに十分賢いです。
例えば:
Ruby myclass_spec.rb
http://github.com/grosser/single_test のようなことができます。
rake spec:user #run spec/model/user_spec.rb (searches for user*_spec.rb)
rake test:users_c #run test/functional/users_controller_test.rb
rake spec:user:token #run the first spec in user_spec.rb that matches /token/
rake test:user:token #run all tests in user_test.rb that match /token/
rake test:last
rake spec:last
Ruby 1.9.2およびRails 3には、1つのスペックファイルを実行する簡単な方法があります。
Ruby -I spec spec/models/user_spec.rb
説明:
Ruby
コマンドは、rake
コマンドよりも高速になる傾向があります-I spec
は、「ファイルを探すときに「spec」ディレクトリを含める」ことを意味しますspec/models/user_spec.rb
は実行したいファイルです。Rspecファイルのallを実行するには:rspec
注:プロジェクトのルートにいる必要があります
one rspecファイルを実行するには:rspec 'path_to/spec.rb'
注:「path_to/spec.rb」をパスに置き換えます。引用符はオプションです
1つのファイルからone rspec testを実行するには:rspec 'path_to/spec.rb:7'
注::7は、テストを開始する行番号です
投稿が古く、コマンドが変更されたためか、これらの例のいずれかを動作させるのに問題がありましたか?
いろいろ調べてみたところ、この作品が見つかりました。
rspec spec/models/user_spec.rb
これにより、単一のファイルのみが実行され、ターミナルで有用な出力が提供されます。
specky.vim
または、自動テストをご覧ください。
コマンドウィンドウで自動テストを実行すると、スペックファイルを保存するたびに実行されます。また、指定しているファイルが実行されるたびに実行されます。
たとえば、person_spec.rbと呼ばれるモデル仕様ファイルと、person.rbと呼ばれるモデル仕様ファイルがある場合、これらのファイルのいずれかをエディターから保存するたびに、仕様ファイルが実行されます。
この質問に対する多くの素晴らしい答えが書かれましたが、それらのどれも Rspec tags
アプローチを使用していません。
タグを使用して、さまざまなファイルで1つ以上の仕様を実行します。現在の開発タスクに関連する仕様のみです。
たとえば、値「current」でタグ「dev」を追加します。
it "creates an user", dev: :current do
user = create(:user)
expect(user.persisted?).to be_truthy
end
それから私は走る
bundle exec rspec . --tag dev:current
個別の仕様またはグループに異なるタグ/値を設定できます。
たとえば、todoを作成するためのテストを実行しているとします。以下のようにcrete_spec.rbファイルを使用して、その特定のtodo仕様コードをいつでも実行できます。
rspec/spec/features/controller/spec_file_name.rb
Example:
Creating rspec spec/features/todos/create_spec.rb
Editing rspec spec/features/todos/edit_spec.rb
Deleting rspec spec/features/todos/destroy_spec.rb
すべての仕様を1つのショートで実行する場合。
rspec
特定のコントローラーユーザーですべての仕様を実行する場合は、これ。
rspec/spec/feaures/controller_name
Example: rspec/spec/features/todos
それがあなたにもっと理解を与えることを願っています!