আমি একক ফাইলের সাথে সমস্ত পরীক্ষা চালাতে পারি:
rake test TEST=path/to/test_file.rb
তবে, আমি যদি সেই ফাইলটিতে কেবল একটি পরীক্ষা চালাতে চাই, তবে আমি কীভাবে এটি করব?
আমি অনুরূপ কার্যকারিতা খুঁজছি:
rspec path/to/test_file.rb -l 25
আমি একক ফাইলের সাথে সমস্ত পরীক্ষা চালাতে পারি:
rake test TEST=path/to/test_file.rb
তবে, আমি যদি সেই ফাইলটিতে কেবল একটি পরীক্ষা চালাতে চাই, তবে আমি কীভাবে এটি করব?
আমি অনুরূপ কার্যকারিতা খুঁজছি:
rspec path/to/test_file.rb -l 25
উত্তর:
আমি আরএসপেক পথ / থেকে / file.rb -l 25 তে অনুরূপ কার্যকারিতা খুঁজছি
হা! ব্যবহারের নিক Quaranto এর "M" মণি । এটি দিয়ে আপনি বলতে পারেন:
m spec/my_spec.rb:25
m
বর্তমানে এই মিনিটেস্ট 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
।
ruby -Itest path/to/tc_file.rb --name test_method_name
মত stackoverflow.com/a/15714985/327786
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
পরীক্ষাগুলি সম্পর্কে আমাকে বিরক্ত করার একটি বিষয় ।
যখন তোমার আছে:
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
,।
আপনি যদি রেল 5+ সহ মিনি টেস্ট ব্যবহার করেন তবে একটি একক ফাইলে সমস্ত পরীক্ষা চালানোর সেরা উপায় হ'ল:
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
সাহায্যে অতিরিক্ত বিকল্পগুলি পাস করতে সক্ষম হয় "TESTOPTS=blah-blah"
, উদাহরণস্বরূপ:
% রেক পরীক্ষা
অনুশীলনে, --name
রাক ইন্টার্নালগুলির কারণে বিকল্প (পরীক্ষার নামের জন্য একটি ফিল্টার) কাজ করবে না। এটি ঠিক করার জন্য আপনাকে আপনার রেকফাইলে একটি ছোট বানর প্যাচ লিখতে হবে:
# 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
}
মিনিটেষ্টের জন্য সমস্ত সম্ভাব্য বিকল্প মুদ্রণ করতে টাইপ করুন
% রুবি-আর মিনিটেষ্ট / অটোরুন -e '' - - সহায়তা lp
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
এই পতাকাটি মিনিটেষ্টের README এ নথিভুক্ত করা হয়েছে ।
আপনি যদি মিনিটেষ্টের সাথে টার্ন মণি ব্যবহার করছেন তবে কেবল Turn.config.pattern
বিকল্পটি ব্যবহার নিশ্চিত করুন যেহেতু টার্ন মিনিটেষ্ট রানার এআরজেগুলিতে - নাম বিকল্পটিকে সম্মান করে না।
name
বিকল্পটি গিলে ফেলছে তা বুঝতে আমার এই ইঙ্গিতটি ছিল । ধন্যবাদ! সেই টার্নটি আর রক্ষণাবেক্ষণ করা হচ্ছে না, তাই আমি ন্যূনতম-সাংবাদিকদের কাছে স্থানান্তরিত করার পরিকল্পনা করছি
আমি অনুরূপ কার্যকারিতা খুঁজছি:
rspec পাথ / থেকে / test_file.rb -l 25 l
একটা মণি যে ঠিক যে আছে হল: 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
। শুধু একটি সুবিধাজনক জিনিস। বিশেষত / রেজেক্স / এর সাথে দরকারী, আমি সাধারণত কিছু র্যান্ডম শব্দটি পরীক্ষার নামে রাখি (যে আমি জানি যে অন্যান্য পরীক্ষার বর্ণনায় উপস্থিত হবে না)।
নিম্নলিখিত কাজ করবে
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
@ ডেরিক_হিল উত্তরগুলি দেখুন