Bats से Bash स्क्रिप्ट का परीक्षण
उत्पादन में पहुँचने से पहले प्रतिगमन पकड़ने के लिए Bats परीक्षण फ़्रेमवर्क का उपयोग करके अपनी शेल स्क्रिप्ट के स्वचालित परीक्षण लिखें।
Bats से Bash स्क्रिप्ट का परीक्षण, CoddyKit पर Linux कमांड लाइन और Bash स्क्रिप्टिंग में महारत का एक निःशुल्क पाठ है। यह 4 में से 4वाँ पाठ है। आप नीचे पूरा पाठ निःशुल्क पढ़ सकते हैं—फिर अंतर्निहित कोड संपादक और 24/7 एआई ट्यूटर के साथ ब्राउज़र में इसका व्यावहारिक अभ्यास कर सकते हैं। यह Linux कमांड लाइन और Bash स्क्रिप्टिंग में महारत सीखने के मार्ग का हिस्सा है और आपकी प्रगति वेब तथा CoddyKit ऐप पर सिंक होती रहती है। Linux कमांड लाइन और Bash स्क्रिप्टिंग में महारत पाठ्यक्रम में कुल 4 पाठ शामिल हैं।
शेल स्क्रिप्ट का परीक्षण क्यों करें
बिना निगरानी चलने वाली स्क्रिप्ट (cron, CI) चुपचाप विफल हो जाती हैं। स्वचालित परीक्षण व्यवहार की पुष्टि करते हैं, ताकि बदलाव काम कर रहे कोड को न बिगाड़ें।
Bats का परिचय
Bats (Bash Automated Testing System) शेल कोड के परीक्षण के लिए TAP-अनुरूप ढाँचा है। परीक्षण स्वयं Bash फ़ाइलें होते हैं।
# Install on Debian/Ubuntu
sudo apt-get install batsपरीक्षण फ़ाइल की संरचना
Bats फ़ाइल का अंत .bats से होता है और वह @test कीवर्ड तथा विवरण से परीक्षण परिभाषित करती है।
@test "addition works" {
result=$(( 2 + 2 ))
[ "$result" -eq 4 ]
}परीक्षण चलाना
bats कमांड से किसी फ़ाइल या पूरी निर्देशिका को चलाएँ। परीक्षण तब सफल होता है, जब उसके भीतर की हर कमांड 0 स्थिति के साथ समाप्त हो।
bats test/
bats math.batsrun सहायक
run कमांड किसी कमांड को चलाता है और परीक्षण बंद किए बिना उसका निकास कोड $status में तथा आउटपुट $output में कैप्चर करता है।
@test "ls succeeds" {
run ls /tmp
[ "$status" -eq 0 ]
}आउटपुट पर पुष्टि करना
$output की तुलना अपेक्षित टेक्स्ट से करें। आप ${lines[0]} से विशिष्ट पंक्तियों का सूचकांक भी ले सकते हैं।
@test "echo prints hello" {
run echo hello
[ "$output" = "hello" ]
}विफलता की स्थितियों का परीक्षण
अच्छे परीक्षण त्रुटि वाले मार्गों की भी जाँच करते हैं। जब किसी कमांड का विफल होना अपेक्षित हो, तब शून्येतर $status की पुष्टि करें।
@test "missing file fails" {
run cat /no/such/file
[ "$status" -ne 0 ]
}सेटअप और सफ़ाई
setup() और teardown() फ़ंक्शन परिभाषित करें, जो प्रत्येक परीक्षण से पहले और बाद में चलें तथा परीक्षण सामग्री तैयार और साफ़ करें।
setup() {
TMP=$(mktemp -d)
}
teardown() {
rm -rf "$TMP"
}परीक्षणाधीन कोड को सोर्स करना
फ़ंक्शन का परीक्षण करने के लिए अपनी स्क्रिप्ट को सोर्स करें, ताकि उसके फ़ंक्शन उपलब्ध हों; फिर उन्हें परीक्षणों के भीतर सीधे कॉल करें।
setup() {
source ./lib/utils.sh
}
@test "slugify lowercases" {
run slugify "Hello World"
[ "$output" = "hello-world" ]
}परीक्षण छोड़ना और लंबित रखना
किसी परीक्षण को अभी लागू न किए गए या वर्तमान प्लेटफ़ॉर्म पर असमर्थित के रूप में चिह्नित करने के लिए skip का उपयोग करें और चाहें तो कारण भी दें।
@test "windows-only feature" {
skip "not supported on Linux"
}CI के साथ एकीकरण
विफलता पर bats शून्येतर निकास कोड लौटाता है, इसलिए परिनियोजन से पहले अवरोधक के रूप में इसे सीधे CI पाइपलाइन में जोड़ा जा सकता है।
# CI step
bats --tap test/ || exit 1त्वरित जाँच
Bats के बारे में अपनी जानकारी की जाँच करें।
पुनरावलोकन
अब आप Bats से Bash का परीक्षण कर सकते हैं:
@testसे परीक्षण परिभाषित करें; सभी कमांड का 0 के साथ समाप्त होना सफलता हैrunसे$statusऔर$outputकैप्चर करेंsetup/teardownसे परीक्षण सामग्री तैयार करें- फ़ंक्शन का परीक्षण करने के लिए स्क्रिप्ट सोर्स करें और परिणामों के आधार पर CI को आगे बढ़ाएँ
एआई शिक्षक के साथ Bash सीखें — निःशुल्क
अपने ब्राउज़र में वास्तविक कोड लिखें और चलाएँ, चौबीसों घंटे एआई शिक्षक से तुरंत सहायता पाएँ, और वेब या ऐप पर वहीं से शुरू करें जहाँ आपने छोड़ा था।
- पाठ्यक्रम
- 22
- पाठ
- 88
अक्सर पूछे जाने वाले प्रश्न
क्या “Bats से Bash स्क्रिप्ट का परीक्षण” पाठ निःशुल्क है?
हाँ—“Bats से Bash स्क्रिप्ट का परीक्षण” का पूरा पाठ यहाँ वेब पर निःशुल्क पढ़ा जा सकता है। इंटरैक्टिव अभ्यास (अंतर्निहित कोड संपादक और 24/7 एआई ट्यूटर) करने और Linux कमांड लाइन और Bash स्क्रिप्टिंग में महारत पाठ्यक्रम का बाकी हिस्सा अनलॉक करने के लिए CoddyKit PRO लें। Linux कमांड लाइन और Bash स्क्रिप्टिंग में महारत पाठ्यक्रम में कुल 4 पाठ शामिल हैं।
“Bats से Bash स्क्रिप्ट का परीक्षण” में मैं क्या सीखूँगा?
उत्पादन में पहुँचने से पहले प्रतिगमन पकड़ने के लिए Bats परीक्षण फ़्रेमवर्क का उपयोग करके अपनी शेल स्क्रिप्ट के स्वचालित परीक्षण लिखें। आप ब्राउज़र में सीधे चलाए जाने वाले व्यावहारिक कोड के साथ Linux कमांड लाइन और Bash स्क्रिप्टिंग में महारत का अभ्यास करते हैं, और पाठ पूरा करते समय 24/7 एआई ट्यूटर आपके प्रश्नों के उत्तर देता है।
क्या Linux कमांड लाइन और Bash स्क्रिप्टिंग में महारत शुरू करने के लिए मुझे किसी अनुभव की आवश्यकता है?
पहले के अनुभव की आवश्यकता नहीं है। CoddyKit पर Linux कमांड लाइन और Bash स्क्रिप्टिंग में महारत शुरुआती से लेकर उन्नत शिक्षार्थियों तक सभी के लिए व्यवस्थित किया गया है, इसलिए आप यहीं से या शुरुआत से सीखना शुरू कर सकते हैं और अपनी गति से आगे बढ़ सकते हैं। यह 4 में से 4वाँ पाठ है।
“Bats से Bash स्क्रिप्ट का परीक्षण” पाठ पूरा करने में कितना समय लगता है?
CoddyKit का अधिकांश पाठ लगभग 5–10 मिनट में पूरा हो जाता है। हर पाठ छोटा और संवादात्मक है, इसलिए आप लगातार प्रगति करते हैं और वेब या ऐप पर वहीं से सीखना जारी रख सकते हैं जहाँ आपने छोड़ा था।
क्या मैं इस Linux कमांड लाइन और Bash स्क्रिप्टिंग में महारत पाठ में कोड लिख और चला सकता हूँ?
हाँ। हर Linux कमांड लाइन और Bash स्क्रिप्टिंग में महारत पाठ में एक अंतर्निर्मित कोड संपादक शामिल है, जिससे आप सीधे अपने ब्राउज़र में वास्तविक कोड लिख और चला सकते हैं और तुरंत एआई प्रतिक्रिया पा सकते हैं—स्थानीय सेटअप की आवश्यकता नहीं है।
इस पाठ्यक्रम के सभी पाठ
- Bash स्क्रिप्ट की डिबगिंग (set -x, trap)
- त्रुटि प्रबंधन और निकास स्थिति
- स्क्रिप्टिंग की श्रेष्ठ प्रथाएँ और लिंटिंग
- Bats से Bash स्क्रिप्ट का परीक्षण