আমার (ওপেন সোর্স) শখের প্রকল্পগুলির মধ্যে একটি ব্যাকআপ সরঞ্জাম যা গিটহাব, বিটবকেট ইত্যাদি থেকে অফলাইনে সংরক্ষণাগারগুলির ব্যাকআপ তৈরি করে
It স্থানীয় কম্পিউটারে সংগ্রহস্থলগুলি টানুন।
সুতরাং আমার একীকরণের পরীক্ষা আছে যেখানে আমি গিটিহব এপিআইকে প্রমাণীকরণ সহ কল করছি।
(এবং ক্লোনিং / টানানোর বৈশিষ্ট্যটি শেষ হয়ে গেলে, সম্ভবত গিটহাব থেকে ক্লোন সংগ্রহস্থলগুলির ক্লোন করা হবে এবং পাশাপাশি প্রমাণীকরণেরও দরকার আছে)
আমি বিশেষত এই সংহতকরণ পরীক্ষাগুলি ব্যবহারের জন্য একটি ব্যবহারকারী এবং একটি সংস্থা তৈরি করেছি ।
সমস্যা: আমি উত্স কোডের কোথাও পাসওয়ার্ডগুলি হার্ড-কোড করতে পারি না কারণ এটি ওপেন সোর্স, এবং কোডটি গিটহাবে সর্বজনীন।
আমি এখন কি করছি
পরীক্ষায়, আমি পরিবেশের ভেরিয়েবল থেকে সমস্ত ব্যবহারকারীর নাম, পাসওয়ার্ড এবং সংগ্রহস্থলের নাম পাচ্ছি।
এখানে একটি উদাহরণ :
config.Name = TestHelper.EnvVar("GithubApiTests_Name");
config.Password = TestHelper.EnvVar("GithubApiTests_PW");
( TestHelper.EnvVar
হেল্পার পদ্ধতি যা একটি পরিবেশের ভেরিয়েবলের মান পায় এবং এটি উপস্থিত না থাকলে একটি ব্যতিক্রম ছুঁড়ে দেয়)
তারপরে, আমার কাছে একটি ব্যাচ ফাইল রয়েছে যা সেই পরিবেশের ভেরিয়েবলগুলি সেট করে।
আসলটি ( environment-variables.bat
) আমার বিল্ড স্ক্রিপ্টে এবং পরীক্ষাগুলি কার্যকর করার আগে বলা হয়েছিল, তবে উত্স নিয়ন্ত্রণে উপেক্ষা করা হয়েছে, সুতরাং এটি আসলে আমার সংগ্রহস্থলে নেই।
কি হল উৎস নিয়ন্ত্রণ environment-variables.bat.sample
, যা একই এনভায়রনমেন্ট ভেরিয়েবল সেট করে, কিন্তু জাল পাসওয়ার্ড সঙ্গে
rem copy/rename this file to environment-variables.bat
echo Setting environment variables for integration tests...
set GithubApiTests_Name=scm-backup-testuser
set GithubApiTests_OrgName=scm-backup-testorg
set GithubApiTests_PW=not-the-real-password
set GithubApiTests_Repo=scm-backup
সুতরাং আমি আমার মেশিনে ভান্ডারটি ক্লোন করতে পারি, এই ফাইলটির নতুন নামকরণ করতে পারি, আসলটির environment-variables.bat
দ্বারা নকল পাসওয়ার্ড প্রতিস্থাপন করতে পারি এবং সমস্ত ইন্টিগ্রেশন পরীক্ষাগুলি কাজ করবে।
এটি ক্রমাগত একীকরণের সাথেও কাজ করে - আমি অ্যাপভিয়ার ব্যবহার করছি এবং সেখানে আমি ইউআইআইতে এই পরিবেশের পরিবর্তনগুলি সেট করতে পারি ।
আমি এটি সম্পর্কে কি পছন্দ না
আমি মনে করি এটি কোনও ওএসএস প্রকল্পের জন্য ভাল সমাধান নয় এবং বিশেষত এই প্রকল্পের জন্য নয় :
তত্ত্ব অনুসারে, আমার প্রকল্পের একজন অবদানকারী এই মুহুর্তে ইন্টিগ্রেশন পরীক্ষা চালাতে সক্ষম হবেন:
- গিটহাবের নিজস্ব পরীক্ষা ব্যবহারকারী এবং পরীক্ষা সংস্থা তৈরি করা
- কিছু পরীক্ষার সংগ্রহস্থল তৈরি করা হচ্ছে
environment-variables.bat
বিভিন্ন মান সহ তার নিজস্ব সংস্করণ তৈরি করা
সমস্যাটি হ'ল আমার অ্যাপ্লিকেশনটি একাধিক উত্স কোড হোস্টারে ব্যাকআপ নিতে সক্ষম হবে।
এখনই এটি কেবল গিটহাবকে সমর্থন করে তবে সঠিক ইন্টারফেস প্রয়োগকারী কয়েকটি ক্লাস যুক্ত করে আরও হোস্টের পক্ষে সমর্থন যুক্ত করা সহজ হবে।
সুতরাং পরে যখন আমি আরও হোস্টের সমর্থন সমর্থন করি তখন পরিবেশের ভেরিয়েবলের সংখ্যা বৃদ্ধি পাবে। সমস্ত ইন্টিগ্রেশন টেস্টগুলি
কার্যকর করতে সক্ষম হওয়ার জন্য , একজন সম্ভাব্য অবদানকারী তার নিজস্ব ব্যবহারকারী, সংস্থা এবং গিটহাব, বিটবকেট, গিটল্যাব, এবং পরীক্ষাগুলি তৈরি করবেন এবং আরও কতজন জানেন এবং সেগুলি সমস্ত তার সংস্করণে যুক্ত করবেন। environment-variables.bat
কোডটি সর্বজনীন এমন কোনও প্রকল্পে কীভাবে এটি করা যায় তার থেকে আরও ভাল সমাধান আছে?
আমি জানি যে অন্যান্য প্রকল্পগুলি বর্তমানে আমি যা করছি তার অনুরূপ কিছু করে। উদাহরণস্বরূপ,
অক্টোকিট.নেটের একীকরণ পরীক্ষার জন্য পরিবেশ পরিবর্তনশীল সেটআপ করার জন্য একটি স্ক্রিপ্ট রয়েছে যা গিটহাব এপিআই কল করে।
তবে তাদের কেবলমাত্র একজন ব্যবহারকারী এবং একটি সংস্থা প্রয়োজন, এবং আমার আরও অনেক কিছুর প্রয়োজন হবে।
হতে পারে আমার এমন কোনও সমাধানের দরকার নেই যা কোনও অবদানকারীকে আসলে সমস্ত ইন্টিগ্রেশন পরীক্ষা চালাতে সক্ষম করে।
উদাহরণস্বরূপ, কেউ যদি আমার প্রকল্পের গিটহাব সমর্থনে অবদান রাখতে চান, তবে তাকে কেবল গিটহাব ইন্টিগ্রেশন পরীক্ষা চালাতে সক্ষম হতে হবে।
সুতরাং সম্ভবত আমার একীকরণ পরীক্ষাগুলিকে অসীম সংখ্যক "গোষ্ঠী" (?) তে বিভক্ত করতে এবং তারপরে "বলতে" এবং এখন গ্রুপ 'গিথুব' এর সাথে সম্পর্কিত সমস্ত পরীক্ষা সম্পাদন করার জন্য আমার একটি সঠিক পদ্ধতি দরকার।