जवाबों:
नोट: यह परीक्षण नहीं चलाता है rake
। तो आपके पास कोई भी कोड Rakefile
निष्पादित नहीं होगा।
एकल परीक्षण चलाने के लिए, अपने रेल प्रोजेक्ट की मुख्य निर्देशिका से निम्न कमांड का उपयोग करें:
ruby -I test test/unit/my_model_test.rb -n test_name
यह निर्दिष्ट फ़ाइल में MyModelTest वर्ग में परिभाषित "नाम" नामक एकल परीक्षण चलाता है। Test_name परीक्षण नाम लेने से बनता है, इसे "परीक्षण" शब्द के साथ जोड़ते हैं, फिर शब्दों को अंडरस्कोर के साथ अलग करते हैं। उदाहरण के लिए:
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
और सिर्फ दूसरी परीक्षा
ruby -I test test/unit/my_model_test.rb -n test_invalid_with_bad_attributes
0 tests, 0 assertions, 0 failures, 0 errors
। रेल 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
@James का शुक्रिया, जवाब लगता है:
rails test test/models/my_model.rb:22
मान लिया गया कि 22 दिए गए परीक्षण की पंक्ति संख्या है। रेल की मदद के अनुसार:
$ rails test --help
आप फ़ाइल नाम पर एक पंक्ति संख्या जोड़कर एक एकल परीक्षण चला सकते हैं:
bin/rails test test/models/user_test.rb:27
इसके अलावा, कृपया ध्यान दें कि आपके परीक्षण को ActionDispatch :: से एकीकरण करना चाहिए। इस कार्य के लिए एकीकरण (यह मेरी गलती थी):
class NexApiTest < ActionDispatch::IntegrationTest
.
.
.
रेल में 5,
मैंने सिंगल टेस्ट फाइल चलाने के लिए इस तरह का प्रयोग किया (एक फाइल में सभी परीक्षण)
rails test -n /TopicsControllerTest/ -v
वास्तविक रेल सुइट में एकल परीक्षण चलाने के लिए:
bundle exec ruby -I"railties/test" actionpack/test/template/form_options_helper_test.rb
यह एक मूर्खतापूर्ण आधी रात का सवाल था। रेल कृपया उस कमांड को प्रिंट करता है जिस पर वह कार्य कर रहा है rake test
। बाकी एक कट और पेस्ट व्यायाम है।
~/projects/rails/actionpack (my2.3.4)$ ruby -I"lib:test" "/usr/lib/ruby/gems/1.8/gems/rake-0.8.7/lib/rake/rake_test_loader.rb" "test/controller/base_test.rb"
सबसे अच्छा तरीका है कि सीधे गाइडों को देखें: 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 actionmailer/test/mail_layout_test.rb
आप एक संपूर्ण सुइट (जैसे। ActiveRecord या ActionMailer) cd
को भी निर्देशिका में चलाकर और rake test
वहां अंदर चला सकते हैं।
require File.join(File.dirname(__FILE__), '..', 'test_helper')
cd
करता है। बस स्पष्ट होने के लिए (मुझे यकीन नहीं है कि मैं इसे गलत पढ़ रहा हूं, लेकिन आपने "उत्पन्न परीक्षण फाइलें" कहा था), यह रेल पुस्तकालय के लिए है, न कि रेल परियोजना।
सबसे पहले, उस परिवाद के फ़ोल्डर तक पहुंचें जिसे आप परीक्षण करना चाहते हैं (यह महत्वपूर्ण है) और फिर चलाएं:
~/Projects/rails/actionview (master)$ ruby -I test test/template/number_helper_test.rb
फ़ोल्डर को रेल करता है
bundle install
bundle exec ruby -I"activerecord/test" activerecord/test/cases/relation/where_test.rb
ध्यान दें कि आपको उपयुक्त फ़ोल्डर लोड करने की आवश्यकता है: "एक्टिवरकॉर्ड / टेस्ट" (जहां आपके पास परीक्षण है)