Ruby Academy · पाठ

Testing और Versioning

Quality और semver

पाठ 3, कुल 4 में से13 चरण

Testing और Versioning, CoddyKit पर Ruby Academy का एक निःशुल्क पाठ है। यह 4 में से 3वाँ पाठ है। इस अध्ययन पथ के 3 तक कोई भी पाठ पूरा पढ़ना निःशुल्क है — इसके बाद CoddyKit PRO हर पाठ अनलॉक करता है, साथ ही अंतर्निर्मित कोड संपादक और चौबीसों घंटे एआई शिक्षक के साथ व्यावहारिक अभ्यास भी उपलब्ध कराता है। यह Ruby Academy सीखने के मार्ग का हिस्सा है और आपकी प्रगति वेब तथा CoddyKit ऐप पर सिंक होती रहती है। Ruby Academy पाठ्यक्रम में कुल 4 पाठ शामिल हैं।

जेम का परीक्षण क्यों करें

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

  • परीक्षण अपेक्षित व्यवहार का दस्तावेज़ीकरण करते हैं।
  • वे रिलीज़ से पहले पुराने व्यवहार में आई गड़बड़ियों को पकड़ लेते हैं।
  • गंभीर उपयोगकर्ता जेम अपनाने से पहले इनकी अपेक्षा करते हैं।

ढाँचा चुनना

दो लोकप्रिय विकल्प हैं Minitest (Ruby के साथ आता है और हल्का है) और RSpec (समृद्ध DSL और बहुत प्रचलित)। दोनों ठीक हैं; किसी एक को चुनकर उसे जेमस्पेक में विकास-निर्भरता के रूप में जोड़ें।

Minitest का उदाहरण

Minitest परीक्षण, दावे की विधियों वाली साधारण क्लास होते हैं। यहाँ एक स्वतंत्र उदाहरण है, जो आपके जेम का तर्क चलाता है और परिणाम की जाँच करता है।

require "minitest/autorun"

def greet(name)
  "Hi, " + name
end

class GreetTest < Minitest::Test
  def test_greet
    assert_equal "Hi, Sam", greet("Sam")
  end
end

सामान्य दावे

उपयोगी Minitest दावे:

  • assert_equal expected, actual
  • assert obj और refute obj
  • assert_nil value
  • assert_raises(Error) { ... }

प्रत्येक परीक्षण को एक स्पष्ट व्यवहार की जाँच करनी चाहिए।

require "minitest/autorun"

class MathTest < Minitest::Test
  def test_addition
    assert_equal 4, 2 + 2
  end

  def test_truth
    refute_nil 5
  end
end

परीक्षण चलाना और स्वचालित करना

आमतौर पर आप एक Rake कार्य जोड़ते हैं, ताकि rake test पूरा परीक्षण-संग्रह चला सके। निरंतर एकीकरण इसके बाद प्रत्येक पुश पर, Ruby के कई संस्करणों में, यही कार्य चलाता है और समस्याओं को जल्दी पकड़ लेता है।

सार्थक संस्करण निर्धारण क्या है

सार्थक संस्करण निर्धारण (सेमवर) संस्करण संख्या MAJOR.MINOR.PATCH को अर्थ देता है:

  • MAJOR: असंगत इंटरफ़ेस में बदलाव।
  • MINOR: नई सुविधाएँ, पिछली संगतता बनाए रखते हुए।
  • PATCH: पिछली संगतता बनाए रखने वाले त्रुटि-सुधार।

उपयोगकर्ता सुरक्षित रूप से अपग्रेड करने के लिए इस पर निर्भर करते हैं।

संस्करण पढ़ना

2.4.1 दिए जाने पर: प्रमुख भाग 2, गौण भाग 4 और पैच भाग 1 है। स्ट्रिंग को विभाजित करने पर ये हिस्से दिखाई देते हैं।

version = "2.4.1"
major, minor, patch = version.split(".")
puts "Major: " + major
puts "Minor: " + minor
puts "Patch: " + patch

प्रत्येक भाग का संस्करण कब बढ़ाएँ

निर्णय के नियम:

  • इंटरफ़ेस बदले बिना कोई त्रुटि ठीक की? पैच बढ़ाएँ।
  • कोई सुविधा जोड़ी और पुराना कोड अब भी काम करता है? गौण संस्करण बढ़ाएँ और पैच को 0 पर रीसेट करें।
  • मौजूदा व्यवहार हटाया या बदला? प्रमुख संस्करण बढ़ाएँ और गौण तथा पैच को 0 पर रीसेट करें।
def bump_minor(version)
  major, minor, _patch = version.split(".").map(&:to_i)
  major.to_s + "." + (minor + 1).to_s + ".0"
end

puts bump_minor("1.3.5")

संस्करण प्रतिबंध

उपयोगकर्ता अपनी Gemfile में ऑपरेटरों के साथ आपके जेम का संस्करण सीमित करते हैं:

  • '~> 1.4' 1.4 से लेकर 2.0 से पहले तक के संस्करणों की अनुमति देता है (संरक्षणवादी प्रतिबंध)।
  • '>= 1.4' किसी भी नए संस्करण की अनुमति देता है।
  • '= 1.4.2' ठीक एक संस्करण को निश्चित कर देता है।

संरक्षणवादी ~> सबसे सामान्य है; यह अपडेट और सुरक्षा के बीच संतुलन रखता है।

परिवर्तन-सूची बनाए रखें

प्रत्येक संस्करण में हुए बदलावों की सूची देने वाली CHANGELOG.md बनाए रखें। इससे उपयोगकर्ताओं को पता चलता है कि नया क्या है, क्या टूट गया और नए संस्करण में कैसे जाना है। प्रत्येक संस्करण वृद्धि के साथ परिवर्तन-सूची में एक प्रविष्टि जोड़ें।

पूर्व-रिलीज़ संस्करण

2.0.0.beta1 जैसे संस्करण अस्थिर पूर्वावलोकनों को दर्शाते हैं। उपयोगकर्ताओं को इन्हें स्थापित करने के लिए स्पष्ट रूप से सहमति देनी पड़ती है, इसलिए आप सामान्य स्थापनाओं को प्रभावित किए बिना परीक्षण के लिए शुरुआती संस्करण जारी कर सकते हैं।

version = "2.0.0.beta1"
puts "Pre-release? " + version.include?("beta").to_s

त्वरित जाँच

संस्करण निर्धारण के बारे में अपनी समझ की जाँच करें।

पुनरावलोकन: परीक्षण और संस्करण निर्धारण

आपने सीखा कि जेम को विश्वसनीय कैसे बनाए रखें:

  • Minitest या RSpec से परीक्षण लिखें; Rake और निरंतर एकीकरण से उन्हें स्वचालित करें।
  • सेमवर का पालन करें: MAJOR.MINOR.PATCH।
  • सुधारों, सुविधाओं या असंगत बदलावों के लिए सही भाग बढ़ाएँ।
  • ~> प्रतिबंधों का उपयोग करें और परिवर्तन-सूची बनाए रखें।

अब हम जेम को RubyGems पर प्रकाशित करेंगे।

शुरुआत निःशुल्क

एआई शिक्षक के साथ Ruby सीखें — निःशुल्क

अपने ब्राउज़र में वास्तविक कोड लिखें और चलाएँ, चौबीसों घंटे एआई शिक्षक से तुरंत सहायता पाएँ, और वेब या ऐप पर वहीं से शुरू करें जहाँ आपने छोड़ा था।

पाठ्यक्रम
29
पाठ
109

अक्सर पूछे जाने वाले प्रश्न

क्या “Testing और Versioning” पाठ निःशुल्क है?

हाँ — Ruby Academy अध्ययन पथ के 3 तक कोई भी पाठ, जिसमें “Testing और Versioning” भी शामिल है, यहाँ वेब पर पूरा पढ़ना निःशुल्क है। इसके बाद CoddyKit PRO हर पाठ अनलॉक करता है, साथ ही अंतर्निर्मित कोड संपादक और चौबीसों घंटे एआई शिक्षक के साथ इंटरैक्टिव अभ्यास भी उपलब्ध कराता है। Ruby Academy पाठ्यक्रम में कुल 4 पाठ शामिल हैं।

“Testing और Versioning” में मैं क्या सीखूँगा?

Quality और semver आप ब्राउज़र में सीधे चलाए जाने वाले व्यावहारिक कोड के साथ Ruby Academy का अभ्यास करते हैं, और पाठ पूरा करते समय 24/7 एआई ट्यूटर आपके प्रश्नों के उत्तर देता है।

क्या Ruby Academy शुरू करने के लिए मुझे किसी अनुभव की आवश्यकता है?

पहले के अनुभव की आवश्यकता नहीं है। CoddyKit पर Ruby Academy शुरुआती से लेकर उन्नत शिक्षार्थियों तक सभी के लिए व्यवस्थित किया गया है, इसलिए आप यहीं से या शुरुआत से सीखना शुरू कर सकते हैं और अपनी गति से आगे बढ़ सकते हैं। यह 4 में से 3वाँ पाठ है।

“Testing और Versioning” पाठ पूरा करने में कितना समय लगता है?

CoddyKit का अधिकांश पाठ लगभग 5–10 मिनट में पूरा हो जाता है। हर पाठ छोटा और संवादात्मक है, इसलिए आप लगातार प्रगति करते हैं और वेब या ऐप पर वहीं से सीखना जारी रख सकते हैं जहाँ आपने छोड़ा था।

क्या मैं इस Ruby Academy पाठ में कोड लिख और चला सकता हूँ?

हाँ। हर Ruby Academy पाठ में एक अंतर्निर्मित कोड संपादक शामिल है, जिससे आप सीधे अपने ब्राउज़र में वास्तविक कोड लिख और चला सकते हैं और तुरंत एआई प्रतिक्रिया पा सकते हैं—स्थानीय सेटअप की आवश्यकता नहीं है।

इस पाठ्यक्रम के सभी पाठ

  1. Gem Structure
  2. Code लिखना
  3. Testing और Versioning
  4. RubyGems पर प्रकाशित करना
← Ruby Academy पर वापस जाएँ