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...তাই আমরা যখন
/luaফোল্ডার থেকে এভাবে VSCode খুলি:
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 ট্যাবে দেখাবে।
শুভকামনা!