Exercism पर अपने C अभ्यासों का टेस्ट करना सीखिए
हर अभ्यास में यूनिट टेस्ट और एक Make बिल्ड रेसिपी दी गई होती है। इम्प्लीमेंटेशन आप लिखते हैं।
हर टेस्ट फाइल का उद्देश्य आपके इम्प्लीमेंटेशन से लिंक होकर एक कंसोल एक्ज़ीक्यूटेबल बनाना है, जो टेस्ट चलाता है। टेस्ट एक्ज़ीक्यूटेबल चलाने पर हर फेल टेस्ट के लिए संदेश छपता है, और टेस्ट फेल होने पर यह शून्य से भिन्न एग्ज़िट स्टेटस बताता है।
किसी अभ्यास को पूरा करने के लिए:
TEST_IGNORE() लाइन हटाइए।हर अभ्यास के साथ एक makefile फाइल और यूनिट टेस्ट वाली एक .c फाइल आती है।
आपको Make फाइल बदलने की ज़रूरत नहीं पड़नी चाहिए।
दी गई Make फाइल यह मानती है कि आपका इम्प्लीमेंटेशन अभ्यास के नाम वाली एक हेडर फाइल (.h) और एक सोर्स फाइल (.c) के रूप में मौजूद है।
जैसे, अभ्यास bob को bob.h और bob.c में इम्प्लीमेंटेशन चाहिए।
जिन अभ्यासों के नाम में डैश होता है, उनकी सोर्स फाइलों में अंडरस्कोर माना जाता है, इसलिए word-count को word_count.h और word_count.c चाहिए।
आप तय कर सकते हैं कि आपका इम्प्लीमेंटेशन इतना आसान है कि वह पूरा हेडर में ही रह सकता है, ऐसी स्थिति में आप .c फाइल छोड़ सकते हैं।
Make चलाने से पहले अपनी शुरुआती इम्प्लीमेंटेशन फाइलें बना लीजिए।
अगर अभ्यास bob के लिए Make चलाते समय आपके पास bob.h और bob.c फाइलें नहीं हैं, तो Make से फाइलें न मिलने की एरर मिलेगी।
ये फाइलें खाली हो सकती हैं, लेकिन उनका होना ज़रूरी है।
अपने कोड को बिल्ड करने का सबसे आसान तरीका है कमांड लाइन (CLI) पर make चलाना।
Linux पर CLI bash या उसके जैसे शेल में उपलब्ध है, और MacOS पर Terminal इस्तेमाल कीजिए।
Windows 10 पर Windows Subsystem for Linux (WSL) का Bash उपलब्ध है।
ऐसा करने के लिए, यह मानते हुए कि मौजूदा डायरेक्टरी अभ्यास का फोल्डर है:
$ make
यह आपके कोड को कंपाइल करेगा और टेस्ट चलाएगा।
makefile के साथ एक और बिल्ड भी आता है, जो मेमोरी लीक और ऐरे की सीमा से बाहर पहुँचने जैसी कुछ आम गलतियाँ जाँचता है।
इन जाँचों को चलाने के लिए कमांड लाइन पर यह लिखिए:
$ make memcheck
बिल्ड के बाद सफाई करने के लिए आप make से कह सकते हैं कि वह बिल्ड का सारा आउटपुट, एक्ज़ीक्यूटेबल समेत, हटा दे:
$ make clean
MacOS पर आप Xcode भी इस्तेमाल कर सकते हैं। कोड बिल्ड करने के लिए टूलबार से Build चुनिए।