回答:
rspec path / to / file.rb -l 25と同様の機能を探しています。
うん!使用ニックQuarantoの「M」宝石。それであなたは言うことができます:
m spec/my_spec.rb:25
m
現在、このMinitest 5.0では動作しません。
コマンドは次のようになります。
% rake test TEST=test/test_foobar.rb TESTOPTS="--name=test_foobar1 -v"
TESTOPTS=...
てください
-v
ますか?
やってみました:
ruby path/to/test_file.rb --name test_method_name
specify {}
ですか?それらはtest_0001_anonymous
...と表示されtest_0001_anonymous
、同じ構文が複数の記述ブロックで使用されている場合、複数のが存在する可能性があります...このような環境で単一のテストを実行するための提案はありますか?
cannot load such file -- test_helper
。
bundle exec ruby -I lib path/to --name test_fit
宝石は必要ありません:
ruby -Itest test/lib/test.rb --name /some_test/
出典:http : //blog.arvidandersson.se/2012/03/28/minimalicous-testing-in-ruby-1-9
これはstring name definition
、テストで私が気になることの1つです。
あなたが持っているとき:
def test_my_test
end
次のように実行できるように、テストの名前が常にわかっています。
ruby my_test -n test_my_test
しかし、次のような場合:
it "my test" do
end
このテストが実際に内部でどのように命名されているかは決してわからないため、-n
オプションを直接使用することはできません。
このテストが内部でどのように命名されているかを知るには、オプションのみがあります。ファイル全体を実行して、ログを調べてみてください。
私の回避策は、(一時的に)次のように非常にユニークなものをテスト名に追加することです:
it "my test xxx" do
end
次に、「-n」パラメータのRegExバージョンを使用します。
ruby my_test.rb -n /xxx/
__method__
は、現在実行中のメソッド(この例ではテスト)のコンテキスト内で呼び出すことで確認できます。現在の実装では、次のような結果になり"does not break my stuff".gsub(" ", "_").prepend("test_")
ます。次に、たとえばを実行しruby -Itest test/integration/stuff_flow_test.rb --name test_does_not_break_my_stuff
ます。
Rails 5+でMiniTestを使用している場合、単一のファイルですべてのテストを実行する最良の方法は次のとおりです。
bin/rails test path/to/test_file.rb
単一のテストの場合(例:25行目):
bin/rails test path/to/test_file.rb:25
http://guides.rubyonrails.org/testing.html#the-rails-test-runnerを参照してください
それには2つの方法があります。
Rake::TestTask
ターゲットをハックして、別のテストローダーを使用します。Rake::TestTask
(レーキ0.8.7から)理論的には、追加のオプションを渡すことができ、MiniTest::Unit
Aと"TESTOPTS=blah-blah"
コマンドラインオプションをます。次に例を示します。
%レイクテストTEST = test / test_foobar.rb TESTOPTS = "-name test_foobar1 -v"
実際には、オプション--name
(テスト名のフィルター)は、Rake内部のために機能しません。これを修正するには、Rakefileに小さなモンキーパッチを記述する必要があります。
# overriding the default rake tests loader
class Rake::TestTask
def rake_loader
'test/my-minitest-loader.rb'
end
end
# our usual test terget
Rake::TestTask.new {|i|
i.test_files = FileList['test/test_*.rb']
i.verbose = true
}
このパッチでは、ファイルを作成する必要がありますtest/my-minitest-loader.rb
。
ARGV.each { |f|
break if f =~ /^-/
load f
}
Minitestのすべての可能なオプションを印刷するには、次のように入力します。
%ruby -r minitest / autorun -e ''---help
rake
(0.9.2)でも正しく機能し、サルのパッチは必要ありません。
TESTOPTS="--name test_foobar"
機能しませんが、TESTOPTS="--name=test_foobar"
機能します。
--name
テストを実行するには、その名前またはその名前内の番号を指定して渡すことができます。
-n, --name PATTERN Filter run on /regexp/ or string.
例えば:
$ ruby spec/stories/foo_spec.rb --name 3
FAIL (0:00:00.022) test_0003_has foo
Expected: "foo"
Actual: nil
このフラグはMinitestのREADMEに記載されています。
Turn gemをminitestで使用しているTurn.config.pattern
場合は、オプションを必ず使用してください。ArnsのTurn Minitestランナーは--nameオプションを考慮しないためです。
name
オプションを飲み込んでいるものであることを理解するために必要なヒントでした。ありがとう!そのターンが維持されなくなったので、私はminitest-reportersに移行する予定です
私は同様の機能を探しています:
rspec path / to / test_file.rb -l 25
まさにそれをする宝石があります:minitest-line
。
gem install minitest-line
ruby test/my_file -l 5
私が使う ruby /path/to/test -n /distinguishable word/
編集:
-n
はの省略形です--name
。distinguishable word
テストの説明に入力する任意の文字列を使用できますが、通常、他のテストの説明には存在しないことがわかっているランダムな単語を使用します。
-n
パラメーターはどういう意味ですか?
--name
。ただ便利なことです。/ regex /を使用すると特に便利です。私は通常、ランダムな単語をテスト名に挿入します(他のテストの説明には存在しないことがわかっています)。
以下は動作します
def test_abc
end
test "hello world"
end
これは
bundle exec ruby -I test path/to/test -n test_abc
bundle exec ruby -I test path/to/test -n test_hello_word
rails test path/to/test_file.rb:25
見@Derek_Hill ANS -から取らguides.rubyonrails.org/testing.html#the-rails-test-runner