Ruby ट्रैक पर टेस्ट

Exercism पर अपने Ruby अभ्यासों का टेस्ट करना सीखिए।


टेस्ट चलाइए

टेस्ट चलाने के लिए यह कमांड चलाइए:

$ ruby hamming_test.rb

केवल पहला टेस्ट चलेगा। बाकी सभी टेस्ट skip मेथड से पेंडिंग बना दिए गए हैं। जैसे-जैसे आप हर टेस्ट पास करते जाते हैं, अगले skip को हटाइए या कमेंट कर दीजिए।

स्किप समझिए

skip मेथड टेस्ट सूट को निर्देश देता है कि वह किसी टेस्ट को न चलाए। इसका इस्तेमाल आम तौर पर उन टेस्टों को चलाने से बचने के लिए किया जाता है जो अभी लागू नहीं हुई कार्यक्षमता से जुड़े हैं, ताकि आप उस हिस्से पर ध्यान दे सकें जिस पर अभी काम कर रहे हैं।

टेस्ट चलाने का सारांश स्किप किए गए टेस्टों की संख्या दिखाएगा। अभ्यास पूरा करने से पहले आपको सभी स्किप बंद कर देने चाहिए।

टेस्ट रिपोर्टिंग अनुकूलित कीजिए

अगर आप रंगों में देखना चाहते हैं, तो टेस्ट इस कमांड से चलाइए:

$ ruby hamming_test.rb -p

अगर आप टेस्टों के नाम देखना चाहते हैं, तो टेस्ट इस कमांड से चलाइए:

$ ruby hamming_tests.rb -v

अगर आप केवल एक टेस्ट चलाना चाहते हैं, तो आप रेगुलर एक्सप्रेशन शैली के मिलान से एक टेस्ट या टेस्टों का समूह चुन सकते हैं।

$ ruby hamming_tests.rb -n /empty/

आप इन विकल्पों को एक साथ भी इस्तेमाल कर सकते हैं।

सभी स्किप बंद कीजिए

अब जब आपके पास यह क्षमता है कि आप अपने मनचाहे अलग-अलग टेस्ट या टेस्टों के समूह चुन सकते हैं, तो आप शायद सभी स्किप बंद करना चाहें।

जल्दी और कामचलाऊ तरीका अपनाइए

इस तथ्य का फायदा उठाते हुए कि Ruby में मेथड को ओवरराइड किया जा सकता है, अगर आप कोड की यह लाइन जोड़ें:

def skip ; end

Hamming टेस्ट फाइल में ऐसे:

class HammingTest < Minitest::Test
  def skip ; end
  def test_identical_strands

तो सभी स्किप अभी भी चलेंगे, लेकिन आपके टेस्ट चलने देंगे।

अब भी जल्दी और साफ तरीका अपनाइए

बेशक, समय-समय पर सभी फाइलों में बदलाव करना परेशानी भरा हो सकता है, इसलिए आप वही कर सकते हैं जो हमने अभ्यास बनाते समय किया था... एक ऐसी फाइल बनाइए जिसमें स्किप की परिभाषा हो, और जब हमें जरूरत हो तो उसे लाइब्रेरी के रूप में रिक्वायर कर लीजिए।

हमने अपनी "हेल्पर" चीज़ों को रखने के लिए एक lib फोल्डर बनाया, और वह ऐसा दिखता है:

require 'minitest/autorun'
# You can use this to disable all skips in the current exercise by issuing the
# following command:
#     ruby -I../lib -rdisable_skip <filename_test.rb>

module Minitest
  class Test
    def skip(_msg='', _bt=caller)
    end
  end
end

इसे इस्तेमाल करने का तरीका उस फाइल लिस्टिंग में कमेंट के रूप में लिखा है, और वह फाइल लिस्टिंग अपने पूर्ण रूप में है।