Lua ट्रैक पर टेस्टिंग

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


अपने टेस्ट चलाने के लिए यह कमांड इस्तेमाल कीजिए:

$ busted

busted इंस्टॉल करने के लिए Lua को अपने कंप्यूटर पर इंस्टॉल करना देखिए।

यूनिट टेस्ट की डीबगिंग

यह गाइड दिखाती है कि VSCode को Busted टेस्ट फ्रेमवर्क और Local Lua Debugger के साथ कैसे सेट अप करें। इससे आप टेस्ट स्पेक में भी और जिस फाइल की वह जाँच कर रही है उसमें भी ब्रेकपॉइंट लगा सकते हैं, जिससे टेस्ट ड्रिवन डेवलपमेंट का वर्कफ्लो सीधा और आसान हो जाता है। यह कोई एकमात्र मान्य तरीका नहीं है। ऐसे कई तरीके हैं जो काम कर सकते हैं, लेकिन यह तरीका कम से कम आपको शुरू करा देगा (ध्यान दें: इसे Windows 10 और Ubuntu 20.04 पर जाँचा गया है और यह वहाँ काम करता है)।

इतनी तकनीकी बातों के बाद अब चलिए शुरू करते हैं।

आप इन हिस्सों को छोड़ सकते हैं, क्योंकि ये सिर्फ प्रक्रिया समझाने के लिए हैं।

VSCode में बाकी सारे Lua डीबगर एक्सटेंशन हटा दीजिए या बंद कर दीजिए, और Local Lua Debugger इंस्टॉल कीजिए। इसके बाद ऐसी कस्टम लॉन्च कॉन्फ़िगरेशन बनाइए:

{
	"name": "Busted",
	"type": "lua-local",
	"request": "launch",
	"program": {
		"command": "busted"
	},
	"cwd": "${workspaceFolder}/${relativeFileDirname}",
	"args": ["${file}"],
	"integratedTerminal": true
}

ध्यान दें: integratedTerminal प्रॉपर्टी एक चेतावनी दिखाएगी, जिसमें लिखा होगा Property integratedTerminal is not allowed, लेकिन आप इसे बेझिझक छोड़ सकते हैं।

cwd प्रॉपर्टी मौजूदा वर्किंग डायरेक्टरी तय करती है, और पाथ हल करने के लिए यह ज़रूरी है। Exercism डिफ़ॉल्ट रूप से हर अभ्यास को ट्रैक के नाम वाले फोल्डर के अंदर उसके अपने फोल्डर में इंस्टॉल करता है। तो Lua के मामले में यह कुछ ऐसा दिखता है:

└── Exercism/
    ├── lua/
    │   ├── armstrong-numbers
    │   ├── bank-account
    │   ├── binarysearch
    │   └── etc...
    └── python/
        └── etc...

तो जब हम VSCode को /lua फोल्डर से इस तरह खोलते हैं:

C:\users\<username>\Exercism\lua> code .

या

/home/<username>/exercism/lua> code .

तो VSCode हमारे वर्कस्पेस में हर अभ्यास को उसके अपने फोल्डर में दिखाएगा। इसका मतलब है कि लॉन्च कॉन्फ़िगरेशन को मौजूदा वर्किंग डायरेक्टरी यानी cwd को हर अलग अभ्यास फोल्डर पर बदलना होगा। हम यह ${workspaceFolder} और ${relativeFileDirname} VSCode वेरिएबलो के जोड़ से करते हैं।

args प्रॉपर्टी बताती है कि Busted को कौन-सा आर्गुमेंट दिया जाए। यहाँ हम वेरिएबल ${file} इस्तेमाल करके मौजूदा खुली फाइल को दर्शाते हैं।

इसके बाद जिस अभ्यास पर आप काम कर रहे हैं, उसकी टेस्ट फाइल यानी <exercise_name>_spec.lua के सबसे ऊपर ये तीन लाइनें जोड़िए:

if os.getenv("LOCAL_LUA_DEBUGGER_VSCODE") == "1" then
  require("lldebugger").start()
end

अब जब आप डीबगर के साथ टेस्ट चलाना चाहें, तो टेस्ट फाइल खोलिए और बाईं ओर के Run and Debug (Ctrl+Shift+D) साइडबार से अभी बनाई गई लॉन्च कॉन्फ़िगरेशन चलाइए। अगर टेस्ट फाइल फोकस में है, तो लॉन्च कॉन्फ़िगरेशन उन टेस्ट को चलाएगी, ब्रेकपॉइंट पर रुकेगी, और आउटपुट को नीचे वाले इंटीग्रेटेड टर्मिनल के DEBUG CONSOLE टैब में दिखाएगी।

कोडिंग का आनंद लीजिए!