308

たとえば、編集している1つのファイルに対して、単一のスペックファイルのテストを実行できるようにしたい。 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
4

15 に答える 15

420

または、rake をスキップして「rspec」コマンドを使用することもできます。

rspec path/to/spec/file.rb

あなたの場合、./spec/db_spec.rb ファイルに適切なヘルパーが含まれている限り、問題なく動作するはずです。

古いバージョンの rspec を使用している場合は、次のようになります。

spec path/to/spec/file.rb
于 2008-09-27T17:20:10.347 に答える
207

生の呼び出し:

rake spec SPEC = spec / controllers / sessions_controller_spec.rb \
          SPEC_OPTS = "-e\"Cookieを使用してログインする必要があります\""

次に、これをエディターに埋め込む方法を理解します。

于 2008-09-27T16:22:06.367 に答える
134

この質問は古いものですが、単一のテストを実行する方法を検索すると、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 までのいずれかです。

お役に立てれば!

于 2012-07-24T21:30:12.920 に答える
63

*e*サンプル テスト ケースの実際のテキストを-e!で使用することもできます。

だから:

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'

ここではレーキは必要ありません。

于 2011-04-15T16:37:02.747 に答える
19

ヘルプから (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

于 2010-08-17T10:10:24.153 に答える
13

rspecをgemではなくプラグインとしてインストールした場合、spec実行可能ファイルはありません。

とにかく、あなたがする必要があるのは、rubyを使用してファイルを実行することだけです。rspecコードは、テストを実行するのに十分賢いです。

例えば:

ruby myclass_spec.rb
于 2008-09-28T20:04:38.383 に答える
12

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
于 2009-12-15T18:29:35.497 に答える
10

Ruby 1.9.2 と Rails 3 には、1 つのスペック ファイルを実行する簡単な方法があります。

  ruby -I スペック spec/models/user_spec.rb

説明:

  • rubyrakeコマンドはコマンド よりも高速になる傾向があります
  • -I spec「ファイルを探すときに「spec」ディレクトリを含める」ことを意味します
  • spec/models/user_spec.rb実行したいファイルです。
于 2011-04-14T03:05:14.883 に答える
5

おそらく投稿が古く、コマンドが変更されたため、これらの例を機能させるのに問題がありましたか?

いくつか突っついた後、これが機能することがわかりました:

rspec仕様/モデル/user_spec.rb

これにより、単一のファイルのみが実行され、ターミナルで有用な出力が提供されます。

于 2011-03-01T17:10:31.560 に答える
4

specky.vim

于 2009-01-11T06:22:07.460 に答える
3

または、自動テストをご覧ください。

コマンドウィンドウで自動テストを実行すると、保存するたびにスペックファイルが実行されます。また、指定しているファイルが実行されるたびに実行されます。

たとえば、person_spec.rbというモデルスペックファイルと、person.rbというスペックのモデルファイルがある場合、これらのファイルのいずれかをエディターから保存すると、スペックファイルが実行されます。

于 2008-10-03T09:12:30.920 に答える