TestNG
ٹیسٹ این جی جاوا پروگرامنگ زبان کے لیے ایک ٹیسٹنگ فریم ورک ہے جسے سیڈرک بیوسٹ نے بنایا ہے اور جے یونٹ اور این یونٹ سے متاثر ہے۔ ٹیسٹ این جی کا ڈیزائن مقصد ٹیسٹ کیٹیگریز کی ایک وسیع رینج کا احاطہ کرنا ہے: یونٹ، فنکشنل، اینڈ ٹو اینڈ، انٹیگریشن وغیرہ، زیادہ طاقتور اور استعمال میں آسان فنکشنلٹیز کے ساتھ۔ ٹیسٹ این جی کی اہم خصوصیات میں شامل ہیں: اینوٹیشن سپورٹ۔ ڈیٹا پر مبنی/پیرامیٹرائزڈ ٹیسٹنگ کے لیے سپورٹ (@DataProvider اور/یا XML کنفیگریشن کے ساتھ)۔ ایک ہی ٹیسٹ کلاس (@Factory کے ساتھ) لچکدار عمل درآمد ماڈل کی متعدد مثالوں کے لیے سپورٹ۔ ٹیسٹ این جی کو یا تو چیونٹی کے ذریعے build.xml کے ذریعے (ٹیسٹ سوٹ کے ساتھ یا اس کے بغیر)، یا بصری نتائج کے ساتھ آئی ڈی ای پلگ ان کے ذریعے چلایا جا سکتا ہے۔ ٹیسٹ سویٹ کلاس نہیں ہے، جبکہ چلانے کے لیے منتخب کردہ ٹیسٹ سوئٹ، گروپ اور ٹیسٹ ایکس ایم ایل فائلوں کے ذریعے متعین اور ترتیب دیے جاتے ہیں۔ سمورتی جانچ: مختلف پالیسیوں کے ساتھ من مانی طور پر بڑے تھریڈ پول میں ٹیسٹ چلائیں (تمام طریقے ان کے اپنے تھریڈ میں، ایک تھریڈ فی ٹیسٹ کلاس، وغیرہ)۔ )، اور جانچ کریں کہ آیا کوڈ ملٹی تھریڈ محفوظ ہے۔ مزید لچک کے لیے BeanShell کو سرایت کرتا ہے۔ رن ٹائم اور لاگنگ کے لیے ڈیفالٹ جے ڈی کے افعال (کوئی انحصار نہیں)۔ ایپلیکیشن سرور کی جانچ کے لیے منحصر طریقے۔ تقسیم شدہ جانچ: غلام مشینوں پر ٹیسٹ کی تقسیم کی اجازت دیتا ہے۔ ڈیٹا فراہم کنندہ ٹیسٹ این جی میں ڈیٹا فراہم کنندہ ٹیسٹ کلاس میں ایک طریقہ ہے، جو منحصر ٹیسٹ کے طریقوں کو مختلف حقیقی اقدار کی ایک صف فراہم کرتا ہے۔ مثال:// یہ طریقہ کسی بھی ٹیسٹ کے طریقہ کار کو ڈیٹا فراہم کرے گا جو یہ اعلان کرتا ہے کہ اس کے ڈیٹا فراہم کنندہ کا نام "فراہم کنندہ 1" ہے۔ @DataProvider (نام = "فراہم کنندہ 1") عوامی آبجیکٹ [] [] تخلیق ڈیٹا 1 () {نیا آبجیکٹ واپس کریں [] [] {{"سیڈرک"، نیا انٹیجر (36)}، {"این"، نیا انٹیجر (37)}} ؛}// یہ ٹیسٹ طریقہ اعلان کرتا ہے کہ اس کا ڈیٹا "فراہم کنندہ 1" نامی ڈیٹا فراہم کنندہ کے ذریعے فراہم کیا جانا چاہیے۔ @Test (ڈیٹا پرووائڈر = "فراہم کنندہ 1") عوامی کالعدم تصدیق ڈیٹا 1 (سٹرنگ n1، انٹیجر n2) {System.out.println (n1 + "+ n2) ؛}// ایک ڈیٹا فراہم کنندہ جو پیرامیٹر صفوں کا تکرار واپس کرتا ہے۔ @DataProvider (نام = "فراہم کنندہ 2") عوامی Iterator <آبجیکٹ []> تخلیق ڈیٹا () {نیا MyIterator واپس کریں (.) ؛}// ڈیٹا فراہم کنندہ جس کی قسم java.lang.reflect.Method ہے۔ //یہ خاص طور پر مفید ہوتا ہے جب کئی ٹیسٹ کے طریقے ایک ہی// فراہم کنندہ کا استعمال کرتے ہیں اور آپ چاہتے ہیں کہ یہ کس ٹیسٹ کے طریقہ کار کی خدمت کر رہا ہے اس کے لحاظ سے مختلف اقدار واپس کرے۔ @DataProvider (نام = "فراہم کنندہ 3") عوامی آبجیکٹ [] تخلیق ڈیٹا (طریقہ m) {System.out.println (m.getName ()) ؛ نیا آبجیکٹ [] [] [] [] {نیا آبجیکٹ [] {"سیڈرک"}} واپس کریں ڈیٹا فراہم کنندہ کی واپسی کی قسم مندرجہ ذیل دو اقسام میں سے ایک ہو سکتی ہے: اشیاء کی صف کی ایک صف (آبجیکٹ [] []) جہاں پہلی جہت کا سائز ٹیسٹ کے طریقہ کار کو مدعو کرنے کی تعداد ہے اور دوسرے طول و عرض کے سائز میں اشیاء کی ایک صف ہوتی ہے جو ٹیسٹ کے طریقہ کار کے پیرامیٹر کی اقسام کے ساتھ مطابقت رکھتی ہے۔ ایک Iterator <آبجیکٹ []>۔ آبجیکٹ [] [] کے ساتھ فرق صرف اتنا ہے کہ آئیٹرٹر آپ کو اپنا ٹیسٹ ڈیٹا سست روی سے بنانے دیتا ہے۔ ٹیسٹ این جی تکرار کو مدعو کرے گا اور پھر اس تکرار کے ذریعے ایک ایک کر کے واپس کیے گئے پیرامیٹرز کے ساتھ ٹیسٹ کا طریقہ۔ یہ خاص طور پر مفید ہے اگر آپ کے پاس طریقہ کار میں منتقل ہونے کے لیے بہت سارے پیرامیٹر سیٹ ہیں اور آپ ان سب کو پہلے سے نہیں بنانا چاہتے ہیں۔ ٹول سپورٹ ٹیسٹ این جی کو تین بڑے جاوا آئی ڈی ای-ایکلپس، انٹیلی جے آئی ڈی ای اے، اور نیٹ بینز میں سے ہر ایک کے ذریعے، آؤٹ آف دی باکس یا پلگ ان کے ذریعے سپورٹ کیا جاتا ہے۔ یہ اپاچی چیونٹی کے لیے ایک کسٹم ٹاسک کے ساتھ بھی آتا ہے اور اسے میوین بلڈ سسٹم کی حمایت حاصل ہے۔ ہڈسن مسلسل انضمام سرور میں ٹیسٹ این جی کے لیے بلٹ ان سپورٹ ہے اور یہ وقت کے ساتھ ٹیسٹ کے نتائج کو ٹریک اور چارٹ کرنے کے قابل ہے۔ زیادہ تر جاوا کوڈ کوریج ٹولز، جیسے کوبرٹورا، ٹیسٹ این جی کے ساتھ بغیر کسی رکاوٹ کے کام کرتے ہیں۔ نوٹ: Eclipse کے لیے ٹیسٹ این جی سپورٹ صرف Eclipse مارکیٹ پلیس میں Eclipse ورژن کے لیے 2018-09 (4.9) تک سرایت شدہ ہے۔ ایکلپس کے بعد کے ورژن کے لیے، ٹیسٹ این جی سائٹ میں دی گئی ہدایات کے مطابق ٹیسٹ این جی کو دستی طور پر انسٹال کیا جانا چاہیے۔ ٹیسٹ این جی کی رپورٹنگ ایچ ٹی ایم ایل اور ایکس ایم ایل فارمیٹس میں ٹیسٹ رپورٹس تیار کرتی ہے۔ ایکس ایم ایل آؤٹ پٹ کو اینٹ یونائٹ رپورٹ ٹاسک کے ذریعے تبدیل کیا جا سکتا ہے تاکہ یونائٹ کا استعمال کرتے وقت حاصل کردہ رپورٹس سے ملتی جلتی رپورٹیں تیار کی جا سکیں۔ ورژن 4.6 کے بعد سے، ٹیسٹ این جی ایک رپورٹر اے پی آئی بھی فراہم کرتا ہے جو تھرڈ پارٹی رپورٹ جنریٹرز، جیسے رپورٹ این جی، پی ڈی ایف این ریپورٹ اور ٹیسٹ این جی-ایکس ایس ایل ٹی کو استعمال کرنے کی اجازت دیتا ہے۔ جے یونٹ ٹیسٹ این جی کے ساتھ موازنہ ایک اور ٹیسٹنگ ٹول جے یونٹ کے ساتھ دیرینہ دشمنی رکھتا ہے۔ ہر فریم ورک میں فرق اور متعلقہ فوائد ہوتے ہیں۔ اسٹیک اوور فلو مباحثے اس تنازعہ کی عکاسی کرتے ہیں۔ تشریحات JUnit 5 میں، زیادہ تر حالات میں @BeforeAll اور @AfterAll طریقوں کو جامد قرار دینا پڑتا ہے۔ ٹیسٹ این جی میں یہ رکاوٹ نہیں ہے۔ ٹیسٹ این جی میں ٹیسٹ سوٹ اور گروپوں کے لیے چار اضافی سیٹ اپ/ٹیر ڈاؤن اینوٹیشن جوڑے شامل ہیں: @BeforeSuite، @AfterSuite، @BeforeTest، @AfterTest، @BeforeGroup اور @AfterGroup، @BeforeMethod اور @AfterMethod۔ ٹیسٹ این جی سیلینیم کا استعمال کرتے ہوئے ایپلی کیشن کی خودکار جانچ کے لیے بھی مدد فراہم کرتا ہے۔ پیرامیٹرائزڈ ٹیسٹنگ کو دونوں ٹولز میں لاگو کیا جاتا ہے، لیکن بالکل مختلف طریقوں سے۔ ٹیسٹ این جی کے پاس ٹیسٹ کے طریقہ کار کو مختلف پیرامیٹر ویلیوز فراہم کرنے کے دو طریقے ہیں: testng.xml ترتیب دے کر، اور @DataProvider طریقہ کی وضاحت کر کے۔ JUnit 5 میں، @ParameterizedTest اینوٹیشن پیرامیٹرائزڈ ٹیسٹنگ کی اجازت دیتا ہے۔ اس تشریح کو ایک اور تشریح کے ساتھ جوڑا جاتا ہے جس میں پیرامیٹرائزڈ دلائل کے ماخذ کا اعلان کیا جاتا ہے، جیسے کہ @ValueSource یا @EnumSource۔ @ArgumentsSource کا استعمال صارف کو زیادہ متحرک آرگیومنٹس پرووائڈر لاگو کرنے کی اجازت دیتا ہے۔ JUnit 4 میں، @RunWith اور @Parameters کو پیرامیٹرائزڈ ٹیسٹوں کو آسان بنانے کے لیے استعمال کیا جاتا ہے، جہاں @Parameters طریقہ کو پیرامیٹرائزڈ اقدار کے ساتھ ایک فہرست [] واپس کرنی ہوتی ہے، جسے ٹیسٹ کلاس کنسٹرکٹر میں ڈالا جائے گا۔ نتیجہ مختلف صارفین اکثر کسی نہ کسی فریم ورک کی مخصوص خصوصیات کو ترجیح دیتے ہیں۔ JUnit زیادہ وسیع پیمانے پر مقبول ہے اور اکثر ڈیفالٹ کی طرف سے مرکزی دھارے IDEs کے ساتھ بھیج دیا جاتا ہے. ٹیسٹ این جی اضافی ترتیب کے اختیارات اور مختلف قسم کی جانچ کی صلاحیت کے لیے مشہور ہے۔ کون سا زیادہ موزوں ہے اس کا انحصار استعمال کے سیاق و سباق اور ضروریات پر ہے۔ یونٹ ٹیسٹنگ فریم ورک کی فہرست بھی دیکھیں JUnit xUnit حوالہ جات بیرونی لنکس ٹیسٹ این جی ہوم پیج یونٹ ٹیسٹنگ فریم ورک جاوا پلیٹ فارم سافٹ ویئر اپاچی لائسنس کا استعمال کرتے ہوئے