জুনিয়ট বনাম টেস্টএনজি [বন্ধ]


125

কর্মক্ষেত্রে আমরা বর্তমানে আমাদের পরীক্ষা চালাতে JUnit 3 ব্যবহার করছি। নতুন পরীক্ষাগুলি রচনার জন্য আমরা JUnit 4 এ যাওয়ার বিষয়ে বিবেচনা করছি তবে আমি আপাতত টেস্টএনজি তে নজর রাখছি। ইউনাইট 4 বা টেস্টএনজি-এর সাথে আপনারা কী অভিজ্ঞতা পেয়েছেন এবং যা খুব বড় সংখ্যক পরীক্ষার জন্য আরও ভাল কাজ করছে বলে মনে হয়? পরীক্ষাগুলি লেখার ক্ষেত্রে নমনীয়তা থাকা আমাদের পক্ষেও গুরুত্বপূর্ণ কারণ আমাদের কার্যকরী পরীক্ষাগুলি একটি বিস্তৃত দিক আবরণ করে এবং ফলাফল পাওয়ার জন্য বিভিন্ন উপায়ে লিখতে হবে।

পুরানো পরীক্ষাগুলি তাদের কাজ ঠিকঠাক করায় পুনরায় লেখা হবে না। আমি নতুন পরীক্ষাগুলিতে যা দেখতে চাই তা হ'ল নমনীয়তা যেমন পরীক্ষাটি লেখা যায়, প্রাকৃতিক দৃ ,়তা, দলবদ্ধকরণ এবং সহজেই পরীক্ষার ফাঁসি কার্যকর করা যায়।


10
08 থেকে এখন পর্যন্ত কোনও পরিবর্তন ????
কিছু_ অন্য_গুই

শুধু ব্যবহার করুন TestNG, এটি জুনিতের যা কিছু ছিল তা পেয়েছিল এবং আরও অনেক কিছু!
এরিক ওয়াং

উত্তর:


67

আমি উভয়ই ব্যবহার করেছি তবে জাস্টিন স্ট্যান্ডার্ডের সাথে আমার একমত হতে হবে যে আপনার বিদ্যমান পরীক্ষাগুলি নতুন কোনও ফর্ম্যাটে পুনর্লিখনের কথা ভাবা উচিত নয়। সিদ্ধান্ত নির্বিশেষে, উভয় চালানো এটি বেশ তুচ্ছ। টেস্টএনজি জুনিতের চেয়ে অনেক বেশি কনফিগার করার চেষ্টা করে তবে শেষ পর্যন্ত তারা উভয়ই সমানভাবে ভালভাবে কাজ করে।

টেস্টএনজির একটি ঝরঝরে বৈশিষ্ট্য রয়েছে যেখানে আপনি নির্দিষ্ট গ্রুপ হিসাবে পরীক্ষা চিহ্নিত করতে পারেন এবং তারপরে সহজেই একটি নির্দিষ্ট গোষ্ঠীর সমস্ত পরীক্ষা চালাতে পারেন, বা কোনও নির্দিষ্ট গোষ্ঠীর পরীক্ষাগুলি বাদ দিতে পারেন। সুতরাং আপনি পরীক্ষাগুলিকে চিহ্নিত করতে পারেন যা "ধীর" গোষ্ঠীর মতো ধীরে ধীরে চলতে পারে এবং আপনি যখন দ্রুত ফলাফল চান তখন এগুলি উপেক্ষা করুন। তাদের ডকুমেন্টেশনের একটি পরামর্শ হ'ল কিছু সাবসেটকে "চেকইন" টেস্ট হিসাবে চিহ্নিত করুন যা যখনই আপনি নতুন ফাইলগুলি পরীক্ষা করেন তখন চালানো উচিত J সত্যিই এটি মিস।

উচ্চতর কনফিগারেশনের সমস্ত দাবির জন্য, আমি কয়েক সপ্তাহ আগে আমি কর্নারের ক্ষেত্রে চলে এসেছি যেখানে আমি যা করতে চাইছিলাম তা করতে পারি না ... আমি আশা করি এটি কী তা মনে করতে পারি তবে আমি এটিকে সামনে আনতে চাইছিলাম সুতরাং আপনি জানেন যে এটি নিখুঁত নয়।

টেস্টএনজির সবচেয়ে বড় সুবিধাটি হ'ল টীকাগুলি ... যা ইউনিত যাইহোক 4 সংস্করণে যুক্ত করেছে।


14
JUnit আপনি টেস্ট স্যুট সংজ্ঞায়িত করে এবং তারপরে সেই স্যুটটিতে পছন্দসই গ্রুপে পরীক্ষাগুলি যুক্ত করে আপনি যে গ্রুপিংয়ের কথা বলছেন তা করতে পারে can তারপরে আপনি আপনার পিপীলিকার স্ক্রিপ্টে একটি লক্ষ্য সেট আপ করতে পারেন যা কেবলমাত্র সেই স্যুট চালায় এবং সেই লক্ষ্যটিকে চেকইন চালানোর জন্য আপনার উত্স নিয়ন্ত্রণ সেট আপ করতে পারেন।
জাস্টিন স্ট্যান্ডার্ড

8
JUnit এর উপরে টেস্টএনজির সবচেয়ে বড় সুবিধাটি হ'ল প্যারামিটারাইজড পরীক্ষার জন্য পরীক্ষামূলকভাবে ডেটা তৈরি করার ক্ষমতা। প্রতিটি পরীক্ষার ডেটা উপাদান একটি পৃথক "পরীক্ষা" হয়, সুতরাং এটি ডেটা-চালিত পরীক্ষাগুলি তৈরি করা সত্যিই সহজ করে তোলে টেংটি.আর.ডক
ডকুমেন্টেশন-

6
প্যারামেট্রাইজড টেস্টগুলি থিওরিগুলির সাহায্যে সহজ হয়, যা জুনিতের নতুন সংস্করণগুলিতে একীভূত হয় (তবে এই মুহুর্তে পরীক্ষামূলক)।
মেনেমেন্ট

9
টেস্টএনজি গ্রুপগুলি জুনেট ৪.৮ এ বিভাগগুলি সহ করা যেতে পারে: kentbeck.github.com/junit/doc/RelaysNotes4.8.html
কৈসসু

কিছু জিনিস উল্লেখ করা হয়নি: আমি মনে করি যে টেস্টএনজির সর্বোত্তম সুবিধাটি আপনি প্রতিটি পরীক্ষার পদ্ধতিতে যে প্যারামিটারগুলি দিয়েছিলেন তা পরীক্ষার আগে / পরে পরীক্ষার আগেও পাস করতে সক্ষম হচ্ছেন: এটি আইএমএইচও খুব শক্তিশালী, সেটআপ এবং টিয়ারডাউনতে দুর্দান্ত সহায়তা। যদি আপনি এটি বুঝতে না চান তবে আপনার মনে হয় এটির দরকার নেই। এছাড়াও, আমি পছন্দ করি আপনি কীভাবে কোডে পরীক্ষার স্যুটগুলি সংজ্ঞায়িত করতে পারেন।
জাঙ্গোফান

20

প্রথমে আমি বলব, কেবলমাত্র সর্বশেষতম ফ্যাডের জন্য আপনার সমস্ত পরীক্ষা পুনর্লিখন করবেন না। জুনিট 3 পুরোপুরি ভালভাবে কাজ করে, এবং 4 এ টীকাগুলির পরিচিতি আপনাকে খুব বেশি কিনে না (আমার মতে)। এটি আরও গুরুত্বপূর্ণ যে আপনি ছেলেরা পরীক্ষাগুলি লিখবেন এবং এটি আপনার মতো মনে হচ্ছে।

সবচেয়ে প্রাকৃতিক বলে মনে হয় যা ব্যবহার করুন এবং আপনাকে আপনার কাজ শেষ করতে সহায়তা করে।

আমি টেস্টএনজি বি / সি-তে মন্তব্য করতে পারি না আমি এটি ব্যবহার করি নি। তবে আমি ইউনিটিলগুলি সুপারিশ করব , আপনি কোন পথেই যান না কেন, ইউনাইট / টেস্টএনজি / ডিবিউনিট / ইজিমকের জন্য দুর্দান্ত একটি র‍্যাপার। (এটি উপরে উল্লিখিত সমস্ত স্বাদকে সমর্থন করে)


1
ইউনিটিলগুলি দেখে মনে হয় না যে এটি কিছুক্ষণের মধ্যে আপডেট হয়েছে; এটি কি JUnit / TestNG এর নতুন সংস্করণগুলির সাথে কাজ করবে?
চিনাসৌর

২০১১-এ এই উত্তরটি খুঁজে পাওয়ার জন্য কেবল আমি পরীক্ষা করে দেখেছি এবং সর্বশেষ ইউনিটিল সংস্করণ (৩.২) এর প্রকাশের তারিখ রয়েছে: ২০১০-০৯-২৯। তাই এটি সক্রিয়ভাবে রক্ষণাবেক্ষণ করা হচ্ছে।
ওগ্রে গীতসংহিতা

18

আমার জন্য টেস্টএনজির বৃহত্তম ড্র কার্ডগুলির সমর্থন টেস্ট গ্রুপগুলি অন্তর্ভুক্ত রয়েছে এবং আরও গুরুত্বপূর্ণভাবে - পরীক্ষার গ্রুপ নির্ভরতা (কোনও গ্রুপকে নির্ভরশীল হিসাবে চিহ্নিত করার ফলে পরীক্ষাগুলি নির্ভর গ্রুপ ব্যর্থ হলে কেবল চলমান এড়িয়ে যায়)।

আমার জন্য টেস্টএনজির অন্যান্য বড় ড্র কার্ডগুলির মধ্যে পরীক্ষার প্যারামিটার, ডেটা সরবরাহকারী, টিকা ট্রান্সফর্মারগুলি এবং যেকোন কিছু - প্রাণবন্ত এবং প্রতিক্রিয়াশীল ব্যবহারকারী সম্প্রদায় অন্তর্ভুক্ত রয়েছে।

পৃষ্ঠের উপরে থাকা অবস্থায় কেউ হয়তো ভাববেন না যে উপরের সমস্ত টেস্টএনজির বৈশিষ্ট্যগুলির প্রয়োজন হবে না, আপনি যখন নিজের পরীক্ষায় আনতে নমনীয়তা বুঝতে শুরু করেন, আপনি কীভাবে জুনিতের সাথে মোকাবিলা করেছেন তা অবাক করে দেবেন।

(অস্বীকৃতি - আমি JUnit 4.x মোটেও ব্যবহার করি নি, সুতরাং সেখানে অগ্রগতি বা নতুন বৈশিষ্ট্য সম্পর্কে সত্যই মন্তব্য করতে অক্ষম)।


3
আমি JUnit4 এবং TestNG উভয়ই ব্যবহার করছি, বসন্তের বসন্ত-পরীক্ষা সংহতকরণের জন্য টেস্টএনজির আরও ভাল সমর্থন রয়েছে। বসন্ত ভিত্তিক অ্যাপ্লিকেশনটি পরীক্ষা করা অনেক সহজ করে তোলে।
hidralisk

18

প্রায় এক বছর আগে, আমাদের একই সমস্যা ছিল। কোন পদক্ষেপটি ভাল ছিল তা বিবেচনা করে আমি কিছুটা সময় কাটিয়েছি এবং শেষ পর্যন্ত আমরা বুঝতে পেরেছি যে টেস্টএনজির কোনও 'হত্যাকারী বৈশিষ্ট্য নেই'। এটি দুর্দান্ত, এবং কিছু বৈশিষ্ট্য রয়েছে যা ইউনিত 4 নেই, তবে আমাদের সেগুলির দরকার নেই।
আমরা চাইনি যে টেস্টএনজি জানার সময় লোকেরা লেখার পরীক্ষায় অস্বস্তি বোধ করবে কারণ আমরা চেয়েছিলাম যে তারা অনেক পরীক্ষা লিখতে থাকবে।
এছাড়াও, JUnit জাভা বিশ্বের ডি-ফ্যাক্টো স্ট্যান্ডার্ড প্রায় অনেক বেশি। বাক্স থেকে এটি সমর্থন করে না এমন কোনও শালীন সরঞ্জাম নেই, আপনি ওয়েবে প্রচুর সহায়তা পেতে পারেন এবং তারা গত বছরের অনেকগুলি নতুন বৈশিষ্ট্য যুক্ত করেছিল যা এটি জীবিত দেখায়।

আমরা JUnit এর সাথে লেগে থাকার সিদ্ধান্ত নিয়েছি এবং আর কখনও পিছন ফিরে তাকাতে হয়নি।


আইএমএইচও, টেস্টএনজির হত্যাকারী বৈশিষ্ট্য হ'ল সেটআপ পদ্ধতির আগে এবং পরে কনটেক্সট আরগগুলি পাস করার ক্ষমতা। আপনি সেখানে অনেক ঝরঝরে জাদুর কৌশল করতে পারেন যা জুনিত করতে পারে না। 95% লোক টেস্টএনজি এটি ভালভাবে শিখতে জোর করে না এবং এটি সম্পর্কে অজ্ঞ থাকে। এছাড়াও, টেস্টএনজির ডেটাপ্রোভাইডারটির মাধ্যমে থ্রেডিংয়ের একটি ঝরঝরে উপায় রয়েছে, তবে কেবল আপনি যদি এর সদ্ব্যবহার করেন। এছাড়াও, testng.xML এ বিয়ানশেল থাকতে পারে contain
জাঙ্গোফান

17

উপরোক্ত সকলকে চিয়ার্স করুন। টেস্টএনজি-তে আমি আরও কিছু পছন্দ করেছি যা আমি ব্যক্তিগতভাবে পেয়েছি:

  1. @BeforeClassTestNG জন্য ক্লাস নির্মাণের পরে সঞ্চালিত, তাই আপনি শুধু এটা আপনার ক্লাসের স্ট্যাটিক পদ্ধতি কল করতে সক্ষম হচ্ছে দ্বারা সীমাবদ্ধ নেই।

  2. সমান্তরাল এবং প্যারামিটারাইজড টেস্ট, সম্ভবত আমার যথেষ্ট পরিমাণে জীবনযাত্রা নেই ... তবে আমি কেবল পেলামি হিসাবে ড্রাইভারের নাম গ্রহণ করে সেলেনিয়াম পরীক্ষার একটি সেট লিখছি get তারপরে 3 টি সমান্তরাল পরীক্ষার গ্রুপ, আইআই, এফএফ এবং ক্রোম ড্রাইভারগুলির জন্য 1 টি এবং দৌড় দেখার জন্য সংজ্ঞা দেওয়া হচ্ছে! আমি মূলত ৪ টি করেছিলাম, তবে HtmlUnitচালককে ব্রেক করার জন্য আমি যে কোনও পৃষ্ঠা বা অন্য কোনও কারণে ভেঙে কাজ করেছি too

হ্যাঁ, সম্ভবত সেই জীবনটি খুঁজে পাওয়া দরকার। ;)


অবশেষে কিছু উম্মাদ মন্তব্য করার পরে সমস্ত উম্মে তারা উভয় সমান .. এবং হতবাক
ব্যবহারকারী 2412398

হ্যাঁ, টেস্টএনজি নিয়ম: আমি টেস্টএনজি ডেটাপ্রোভাইডার থেকেও পরীক্ষামূলক চাপের মাধ্যমে ড্রাইভারের উদাহরণগুলি লোড করি। এটি আমি এখানে কীভাবে করেছি: github.com/djangofan/yet-another-selenium-framework/blob/master/…
জ্যাঙ্গোফান

10

আমি আজ আমি যার মুখোমুখি হয়েছিলাম সেটিকেই ভাগ করে নিতে চাই। আমি দেখতে পেয়েছি যে অন্তর্নির্মিত প্যারামিটারাইজড রানার টেস্টএনজির তুলনায় জুনিট 4-তে বেশ অশোধিত (আমি জানি প্রতিটি ফ্রেমওয়ার্কের শক্তি রয়েছে তবে এখনও)। জুনিট 4 টীকা @ প্যারামিটারগুলি প্যারামিটারগুলির একটি সেটে সীমাবদ্ধ। একই পরীক্ষার শ্রেণিতে কার্যকারিতার জন্য বৈধ এবং অবৈধ আচরণের পরীক্ষা করার সময় আমি এই সমস্যার মুখোমুখি হয়েছি। সুতরাং এটি সর্বজনীন, স্থিতিক টীকাকৃত পদ্ধতি যা এটি আবিষ্কার করে তা ব্যবহার করা হবে তবে এটি সেগুলি কোনও ক্রমে খুঁজে পেতে পারে। এটি আমাদের অকারণে বিভিন্ন ক্লাস লিখতে বাধ্য করে। তবে টেস্টএনজি প্রতিটি এবং প্রতিটি পদ্ধতির জন্য বিভিন্ন ধরণের ডেটা সরবরাহকারী সরবরাহের পরিষ্কার উপায় সরবরাহ করে। সুতরাং আমরা বৈধ / অবৈধ উপায়ে একই পরীক্ষার শ্রেণিতে বৈধ / অবৈধ ডেটা পৃথক করে রেখে কোডের একই ইউনিটটি পরীক্ষা করতে পারি। আমি টেস্টএনজি নিয়ে যাব।


7

এছাড়াও টেস্টএনজির আরও একটি সুবিধা সমান্তরাল পরীক্ষার পক্ষে সহায়তা করে। আমাদের মাল্টিকোরগুলির যুগে এটি গুরুত্বপূর্ণ, আমি মনে করি।

আমি উভয় ফ্রেমওয়ার্ক ব্যবহার। তবে আমি দাবী জন্য হ্যামক্রস্ট ব্যবহার করছি। হ্যামক্রেস্ট আপনাকে সহজেই আপনার নিজের দৃsert়পদ পদ্ধতি লিখতে দেয়। পরিবর্তে তাই

assertEquals(operation.getStatus(), Operation.Status.Active);

তুমি লিখতে পারো

assertThat(operation, isActive());

এটি আপনাকে আপনার পরীক্ষাগুলিতে উচ্চ স্তরের বিমূর্ত ব্যবহার করার সুযোগ দেয়। এবং এটি আপনার পরীক্ষাগুলি আরও শক্তিশালী করে তোলে।


7

JUnit 4 Vs TestNG - mkyong.com দ্বারা তুলনা (2013 এ আপডেট হয়েছে)।

উপসংহার: আমি জাভা প্রকল্পের জন্য কোর ইউনিট পরীক্ষার কাঠামো হিসাবে টেস্টএনজি ব্যবহার করার পরামর্শ দিচ্ছি, কারণ টেস্টএনজি প্যারামিটারাইজ টেস্টিং, নির্ভরতা পরীক্ষা এবং স্যুট টেস্টিং (গ্রুপিং ধারণা) ক্ষেত্রে আরও অগ্রসর।

টেস্টএনজি কার্যকরী, উচ্চ-স্তরের পরীক্ষা এবং জটিল ইন্টিগ্রেশন পরীক্ষার জন্য বোঝানো হয়। এর নমনীয়তা বড় টেস্ট স্যুটগুলির সাথে বিশেষত কার্যকর।

এছাড়াও , টেস্টএনজি পুরো মূল JUnit4 কার্যকারিতাটিও কভার করে । আমার আর JUnit ব্যবহার করার কোনও কারণ নেই।

সাধারণ কথায়, টেস্টএনজি = জুনিট + আরও অনেক কিছু। তাহলে, বিতর্ক কেন? যান এবং টেস্টএনজি দখল করুন :-)

আপনি এখানে আরও বিস্তারিত তুলনা খুঁজে পেতে পারেন ।


5

মাইক স্টোন এর জবাবে কয়েকটি সংযোজন:

1) টেস্টএনজির গ্রুপগুলির জন্য আমি সবচেয়ে ঘন ঘন ব্যবহার করি যখন আমি কোনও টেস্ট স্যুটে একক পরীক্ষার পদ্ধতি চালাতে চাই। আমি এই পরীক্ষাটি কেবল "ফিল" গ্রুপে যুক্ত করি এবং তারপরে এই গ্রুপটি চালাই। আমি যখন জুনট 3 ব্যবহার করছিলাম, আমি সমস্ত পদ্ধতির জন্য এন্ট্রিগুলি সম্পর্কে মন্তব্য করব তবে আমি "স্যুট" পদ্ধতিতে চালিত করতে চাইছিলাম, তবে চেকিনের আগে সাধারণত এগুলিকে অসুবিধে করতে ভুলে যাব। গ্রুপগুলির সাথে আমার আর এই সমস্যা নেই।

2) পরীক্ষাগুলির জটিলতার উপর নির্ভর করে, JUnit3 থেকে TestNG এ মাইগ্রেশন টেস্টগুলি কিছুটা স্বয়ংক্রিয়ভাবে টেডকেজ প্রতিস্থাপনের জন্য বেস ক্লাস তৈরি করা যেতে পারে যা টেস্টনিজি সমস্ত টেস্টিং পদ্ধতিতে আমদানি করে।

আমার কাছে এখানে এবং এখানে JUnit থেকে TestNG এ স্থানান্তরের তথ্য রয়েছে ।


আপনি যে পরিবর্তনগুলি চাননি সেগুলি পরীক্ষা করার সমস্যাটি সত্যই কারণ আপনি যা যা চেক করছেন তা আপনাকে পর্যালোচনা করতে হবে And এবং যদি আপনার বড় চেক ইন হয় তবে এটি একটি অজুহাত নয়, এটি অন্য সমস্যা: আপনার অনেকগুলি ছোট চেকিন থাকা উচিত।
hidralisk

5

কেন আমরা জুনিটের পরিবর্তে টেস্টএনজি ব্যবহার করব?

  1. ঘোষণা @BeforeClassএবং @AfterClassপদ্ধতি JUnit স্ট্যাটিক হতে যেহেতু সেখানে পদ্ধতি ঘোষণায় TestNG আরও নমনীয়তা থাকে, এটা এই সীমাবদ্ধতার নেই।

  2. টেস্টএনজিতে আমরা 2 টি উপায় ব্যবহার করে পরীক্ষাগুলি প্যারাম্যাট্রাইজ করতে পারি । @ প্যারামিটার বা @ ডেটাপ্রোভাইডার টীকা।

    i) @ সরল কেসগুলির জন্য প্যারামিটার যেখানে মূল মান ম্যাপিং প্রয়োজন ((এক্সএমএল ফাইলের মাধ্যমে ডেটা সরবরাহ করা হয়)

    ii) জটিল মামলার জন্য @ ডেটাপ্রভাইডার । ২ টি মাত্রিক অ্যারে ব্যবহার করে এটি ডেটা সরবরাহ করতে পারে।

  3. টেস্টএনজি-তে, যেহেতু @ ডেটাপ্রোভাডার পদ্ধতিটি অচল নয়, তাই আমরা একই পরীক্ষার শ্রেণিতে একাধিক ডেটা সরবরাহকারী পদ্ধতি ব্যবহার করতে পারি।

  4. নির্ভরতা পরীক্ষা: টেস্টএনজিতে, প্রাথমিক পরীক্ষা যদি ব্যর্থ হয়, তবে পরবর্তী সমস্ত নির্ভরশীল পরীক্ষা বাদ দেওয়া হবে, ব্যর্থ হিসাবে চিহ্নিত নয়। কিন্তু ইউনিত এটি ব্যর্থ চিহ্নিত করেছে।

  5. দলবদ্ধকরণ: একক পরীক্ষা একাধিক গ্রুপের অন্তর্ভুক্ত এবং তারপরে বিভিন্ন প্রসঙ্গে (ধীর বা দ্রুত পরীক্ষার মতো) চালানো যেতে পারে। একই রকম বৈশিষ্ট্য JUnit বিভাগে বিদ্যমান তবে @BefeGroups / @ আফটারগ্রুপস টেস্টএনজি টীকাগুলির অভাব রয়েছে যা পরীক্ষাটি আরম্ভ করার / এটি ছিন্ন করতে দেয়।

  6. সমান্তরালতা: আপনি যদি একাধিক থ্রেডের সমান্তরালে একই পরীক্ষা চালাতে চান তবে টেস্টএনজি এনটোটেশনটি ব্যবহার করার জন্য আপনাকে একটি সাধারণ কভার দিয়েছে যখন জুনিত বাক্সের বাইরে এটি করার কোনও সহজ উপায় সরবরাহ করে না।

  7. টেস্টএনজি @ ডেটাপ্রভাইডার ডেটা, সিএসভি, বা এমনকি সরল পাঠ্য ফাইলগুলিতে খাদ্য সরবরাহের জন্য এক্সএমএল সমর্থন করতে পারে।

  8. টেস্টএনজি আপনাকে পরীক্ষার মধ্যে নির্ভরতা ঘোষণা করতে দেয় এবং নির্ভরতা পরীক্ষাটি পাস না হলে এগুলি এড়িয়ে যায়।

@ টেস্ট (dependOnMethods = {"dependOnSomething"})

এই কার্যকারিতা JUnit- তে বিদ্যমান নেই

  1. প্রতিবেদন করা:

টেস্টএনজি রিপোর্টগুলি একটি টেস্ট-আউটপুট ফোল্ডারে ডিফল্টরূপে উত্পন্ন হয় যা পরীক্ষার সমস্ত ডেটা সহ এইচটিএমএল প্রতিবেদনগুলিকে অন্তর্ভুক্ত করে / পাস করে / ব্যর্থ হয় / এড়িয়ে যায়, কতক্ষণ চালিত হয়, কোন ইনপুট ব্যবহৃত হয় এবং সম্পূর্ণ পরীক্ষার লগ থাকে। তদতিরিক্ত, এটি একটি এক্সএমএল ফাইলে সবকিছু রফতানি করে যা আপনার নিজস্ব প্রতিবেদন টেমপ্লেট তৈরি করতে ব্যবহার করা যেতে পারে।

জাবিট ফ্রন্টে, এই সমস্ত ডেটা এক্সএমএলের মাধ্যমেও পাওয়া যায়, তবে বক্স রিপোর্টের বাইরে নেই এবং আপনাকে প্লাগইনগুলির উপর নির্ভর করতে হবে।

সংস্থান লিঙ্ক:

  1. একটি দ্রুত JUnit বনাম টেস্টএনজি তুলনা
  2. জুনিট বনাম টেস্টএনজি: আপনার কোন টেস্টিং ফ্রেমওয়ার্কটি বেছে নেওয়া উচিত?

পাশাপাশি এই টিউটোরিয়ালে একটি ভাল পার্থক্য দেওয়া হয়েছে: টেস্টএনজি বনাম জুনিট: পার্থক্য কী?


আপনি টেস্টএনজির সবচেয়ে স্বতন্ত্র বৈশিষ্ট্যটি তালিকাভুক্ত করেননি, আইএইচএমও: পদ্ধতিগুলির আগে এবং পরে প্রসঙ্গের আর্গগুলি পাস করার ক্ষমতা, যা আপনাকে কিছু যাদু করতে সক্ষম করে। ডেটাপ্রোভাইডার উদাহরণ হিসাবে এইভাবে কাজ করে।
জাঙ্গোফান

3

আপনার প্রশ্নটি আমার কাছে দুটি ভাঁজ করে। একদিকে আপনি দুটি পরীক্ষার ফ্রেমওয়ার্ক তুলনা করতে চান, অন্যদিকে আপনি পরীক্ষাগুলি সহজেই প্রয়োগ করতে চান, প্রাকৃতিক দৃ ,়তা ইত্যাদি রয়েছে ...

ঠিক আছে, প্রথমত JUnit কার্যকারিতার দিক দিয়ে টেস্টএনজির সাথে ক্যাপআপ খেলছে, তারা V4 দিয়ে কিছুটা ফাঁককে কমিয়ে দিয়েছে, তবে আমার মতে এটি যথেষ্ট নয়। টিকাএনজিতে টিকা এবং ডেটাপ্রোভাইডারগুলির মতো জিনিসগুলি এখনও আরও ভাল। এছাড়াও টেস্টএনজি-র পরীক্ষার নির্ভরতা, গোষ্ঠীকরণ এবং ক্রম অর্ডার হওয়ার কারণে তারা পরীক্ষার মৃত্যুদণ্ডের ক্ষেত্রে আরও নমনীয়।

JUnit এখনও অবিচলিত পদ্ধতিগুলি স্থির হওয়ার আগে / পরে নির্দিষ্ট কিছু প্রয়োজন, যা পরীক্ষা চালানোর আগে আপনি যা করতে পারেন তা সীমাবদ্ধ করে রাখে, টেস্টএনজির এই সমস্যাটি কখনই আসে না।

টিবিএইচ, মূলত দুটি ফ্রেমওয়ার্কের মধ্যে পার্থক্যগুলি খুব বেশি বোঝায় না, যদি না আপনি ইন্টিগ্রেশন / অটোমেশন পরীক্ষায় মনোনিবেশ করেন। আমার অভিজ্ঞতা থেকে ইউনাইট ইউনিট পরীক্ষার জন্য গ্রাউন্ড আপ থেকে নির্মিত এবং এখন উচ্চ স্তরের পরীক্ষার দিকে ধাক্কা দেওয়া হচ্ছে, যা আইএমও এটিকে কাজের ভুল সরঞ্জাম হিসাবে তৈরি করে। টেস্টএনজি ইউনিট টেস্টিংয়ে ভাল কাজ করে এবং এর মজবুত ডেটাপ্রোভিডিং এবং দুর্দান্ত টেস্ট এক্সিকিউশন সক্ষমতাগুলির কারণে ইন্টিগ্রেশন / অটোমেশন পরীক্ষার স্তরে আরও ভাল কাজ করে।

এখন আমি যা বিশ্বাস করি তার জন্য একটি পৃথক সমস্যা, কীভাবে ভাল কাঠামোগত, পাঠযোগ্য এবং রক্ষণাবেক্ষণযোগ্য পরীক্ষাগুলি লিখতে হয়। এর বেশিরভাগ ক্ষেত্রে আমি নিশ্চিত যে আপনি জানেন, তবে ফ্যাক্টরি প্যাটার্ন , কমান্ড প্যাটার্ন এবং পেজঅবজেক্টগুলি (যদি আপনার পরীক্ষার ওয়েবসাইটগুলি) অত্যাবশ্যক, আপনার টেস্টিং (এসইউটি) এবং প্রকৃত পরীক্ষাটি কীসের মধ্যে বিমূর্ততার একটি স্তর থাকা খুব গুরুত্বপূর্ণ is হ'ল (ব্যবসায়িক যুক্তি অনুসারে) খুব সুন্দর দৃser়তার জন্য , আপনি হ্যামক্রেস্ট ব্যবহার করতে পারেন । পুনরাবৃত্তি হ্রাস করতে এবং সাধারণতা প্রয়োগ করতে জাভা উত্তরাধিকার / ইন্টারফেস ব্যবহার করুন।

প্রায় ভুলে গেছেন, টেস্ট ডেটা নির্মাতা প্যাটার্নটিও ব্যবহার করুন , এটি টেস্টএনজির ডেটাপ্রোভাইডার টিকাটির সাথে মিলিত খুব দরকারী।


3

টেস্টএনজি আসলে কী আরও শক্তিশালী করে তোলে সে সম্পর্কে আমার মতামত:

1.  JUnit still requires the before/after class methods to be static, which limits
    what you can do prior to the running of tests, TestNG never has this issue.

2.  TestNG @Configuration methods can all take an optional argument to their 
    annotated methods in the form of a ITestResult, XmlTest, Method, or 
    ITestContext.  This allows you to pass things around that JUnit wouldn't 
    provide you.  JUnit only does this in listeners and it is limited in use.

3.  TestNG comes with some pre-made report generation classes that you can copy
     and edit and make into your own beautiful test output with very little 
     effort. Just copy the report class into your project and add a listener 
     to run it.  Also, ReportNG is available.

4.  TestNG has a handful of nice listeners that you can hook onto so you can do
     additional AOP style magic at certain phases during testing.
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.