回答:
注: これはを介してテストを実行しませんrake
。だからあなたが持っているコードはRakefile
実行されません。
単一のテストを実行するには、railsプロジェクトのメインディレクトリから次のコマンドを使用します。
ruby -I test test/unit/my_model_test.rb -n test_name
これは、指定されたファイルのMyModelTestクラスで定義された「name」という名前の単一のテストを実行します。test_nameは、テスト名を取得し、「test」という単語を前に付けて、単語をアンダースコアで区切ることによって形成されます。例えば:
class MyModelTest < ActiveSupport::TestCase
test "valid with good attributes" do
# do whatever you do
end
test "invalid with bad attributes" do
# do whatever you do
end
end
次の方法で両方のテストを実行できます。
ruby -I test test/unit/my_model_test.rb
そしてちょうど2回目のテスト
ruby -I test test/unit/my_model_test.rb -n test_invalid_with_bad_attributes
0 tests, 0 assertions, 0 failures, 0 errors
。Rails 3.0.7。
-n "/good/"
。シェルのエスケープは常に楽しいので、単純な正規表現を使用する傾向がありますが、完全なテスト名を常に書き出すよりもはるかに簡単です。
test/
フォルダを含むサブディレクトリにいる必要があることに注意することが重要です。たとえば、テストactivesupport/test/core_ext/array_ext_test.rb
を実行したい場合は、activesupport/
最初にする必要があります。
-n "/good/"
働いた。
テストファイルを実行します。
rake test TEST=tests/functional/accounts_test.rb
テストファイルで単一のテストを実行します。
rake test TEST=tests/functional/accounts_test.rb TESTOPTS="-n /paid accounts/"
(@Puhlzeのコメントから。)
rake test TEST=tests/functional/accounts_test.rb TESTOPTS="-n '/paid accounts/'"
(/paid accounts/
単一引用符で囲む)
レール5の場合:
rails test test/models/my_model.rb
bin/rails test test/models/user_test.rb:27
@ジェームズのおかげで、答えは次のようです:
rails test test/models/my_model.rb:22
22が指定されたテストの行番号であると仮定します。レールのヘルプによると:
$ rails test --help
ファイル名に行番号を追加して、単一のテストを実行できます。
bin/rails test test/models/user_test.rb:27
また、これが機能するためには、テストがActionDispatch :: IntegrationTestを継承する必要があることに注意してください(これが私の間違いでした)。
class NexApiTest < ActionDispatch::IntegrationTest
.
.
.
レール5では
私はこの方法を使用して単一のテストファイルを実行しました(すべてのテストを1つのファイルで)
rails test -n /TopicsControllerTest/ -v
最善の方法は、ガイドを直接調べることです:http : //guides.rubyonrails.org/contributing_to_ruby_on_rails.html#running-tests
cd actionmailer
bundle exec ruby -w -Itest test/mail_layout_test.rb -n test_explicit_class_layout
単一のテストを実行したい場合は、通常のRubyスクリプトとして実行できます
ruby actionmailer/test/mail_layout_test.rb
cd
ディレクトリに移動し、そのrake test
中で実行することで、スイート全体(ActiveRecordやActionMailerなど)を実行することもできます。
require File.join(File.dirname(__FILE__), '..', 'test_helper')
cd
-ing inは機能します。明確にするために(これを誤って読んでいるかどうかはわかりませんが、「生成されたテストファイル」と言っていました)、これはRailsプロジェクト自体ではなく、Rails ライブラリ自体に対するものです。
Railsフォルダー
bundle install
bundle exec ruby -I"activerecord/test" activerecord/test/cases/relation/where_test.rb
適切なフォルダーをロードする必要があることに注意してください: "activerecord / test"(テストがある場合)