নুনিট বনাম এমবিউনিত বনাম এমএসটিস্ট বনাম xUnit.net [বন্ধ]


390

.NET এর জন্য বেশ কয়েকটি ইউনিটলেস্টিং ফ্রেমওয়ার্ক রয়েছে। আমি এই সামান্য বৈশিষ্ট্যের তুলনাটি পেয়েছি: http://xunit.github.io/docs/comparisons.html

এখন আমি আমাদের জন্য সেরাটি বেছে নেব। কিন্তু কিভাবে? এটা কোন ব্যাপার? কোনটি ভবিষ্যতের প্রমাণ এবং এর পিছনে একটি শালীন গতি রয়েছে? আমি বৈশিষ্ট্য সম্পর্কে যত্ন করা উচিত? XUnit সর্বাধিক আধুনিক বলে মনে হয় এবং NET- র জন্য বিশেষভাবে ডিজাইন করা হয়েছে, NUnit আবার এমনটি বলে মনে হচ্ছে যা সর্বজনস্বীকৃত। এমএসটিস্টে আবার ভিজ্যুয়াল স্টুডিওতে সংহত করা হয়েছে ...


11
সেই তুলনা টেবিলটি বছরের পুরানো। উদাহরণস্বরূপ, NUnit এর মধ্যে Assert.Trrows ইত্যাদি রয়েছে এবং সংযোজন সারণীর সমস্ত কিছুই পুরানো API API নতুন Assert.That (..., is ....) অনর্গল সিনট্যাক্সটি খুব সুন্দর, এবং বেশ ভাল সময় ধরে ছিল।
জিম কুপার

11
আপনি আপ টু ডেট এমন কোনও টেবিল সম্পর্কে জানেন?
বিটবঙ্ক

1
২০১৩ সালের শেষের দিকে, xUnit.net => নুনিট থেকে সরানো হয়েছে। এছাড়াও নোট করুন যে xUnit.NET (প্রকল্প)! = XUnit (বিভাগ, যার মধ্যে NUnit সদস্য)
ডিপস্পেস 101

3
@ সিড করুন কেন আপনি xUnity.net => নুনিট থেকে সরে গেছেন?
আলেকজান্ডার লগার

2
অনুরূপ প্রশ্ন জিজ্ঞাসা করা হয়েছে 2014 ভিজ্যুয়াল স্টুডিও 2013 MSTest বনাম
নুনিট

উত্তর:


197

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

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

xUnit.NET এছাড়াও থিওরি অ্যাট্রিবিউট এবং সম্পর্কিত ডেটা অ্যাট্রিবিউটসের সাহায্যে সরাসরি বক্সের বাইরে ফিট-স্টাইল টেস্টিং সমর্থন করে। ফিট ইনপুট ডেটা এক্সেল, ডাটাবেস বা এমনকী কোনও কাস্টম ডেটা সোর্স যেমন ওয়ার্ড ডকুমেন্ট (বেস ডেটা অ্যাট্রিবিউট বাড়িয়ে দিয়ে) থেকে লোড করা যেতে পারে এটি আপনাকে ইউনিট টেস্ট এবং ইন্টিগ্রেশন পরীক্ষার জন্য একক পরীক্ষামূলক প্ল্যাটফর্মের মূলধনকে মঞ্জুরি দেয় which পণ্যের নির্ভরতা হ্রাস এবং প্রয়োজনীয় প্রশিক্ষণের ক্ষেত্রে বিশাল হতে পারে।

XUnit.NET- এর মাধ্যমে পরীক্ষার অন্যান্য পদ্ধতির প্রয়োগও করা যেতে পারে ... সম্ভাবনাগুলি বেশ সীমাহীন। অন্য খুব প্রত্যাশিত বিদ্রূপ কাঠামোর সাথে একত্রিত , মক , দু'টি স্বয়ংক্রিয় পরীক্ষার প্রয়োগের জন্য খুব নমনীয়, এক্সটেনসিবল এবং শক্তিশালী প্ল্যাটফর্ম তৈরি করে।


35
এটি এক বছর আগে সত্য হলেও, নুনিট তখন থেকেই বেশিরভাগ বৈশিষ্ট্যকে প্রশ্নের মধ্যে যুক্ত করেছে। নুনিতে আপনি যেভাবেই পরীক্ষা লিখতে পারেন।
মার্ক লেভিসন

8
কোন বৈশিষ্ট্য উপলব্ধ তা সম্পর্কে এতটা নয়, তবে সেগুলি কীভাবে ব্যবহার করা যায়। xUnit.NET গ্রাউন্ড থেকে একটি অত্যন্ত নমনীয় এবং এক্সটেনসিবল ফ্রেমওয়ার্ক হিসাবে তৈরি করা হয়েছিল যা আপনাকে পরীক্ষার কোনও বিশেষ পদ্ধতিতে লক করে না এবং সর্বশেষতম ক্ষমতাগুলি পেতে আপনাকে নিয়মিতভাবে মূল কাঠামোটি আপডেট করার প্রয়োজন হয় না।
জ্রিস্টা

9
1. বৈশিষ্ট্যগুলিতে কিছুটা আলাদা আলাদা আলাদা নামগুলি কোনও পয়েন্ট দেয় না। ২.উন্নিত এক্সটেনসিবল ছিল এবং এটি এক্সটেনসিবল অবিরত:? ৩. পরীক্ষার জন্য ডেটা সারির প্যারামিটারগুলি নুনিতে সমর্থিত। সময় আগে এগুলিকে একটি এক্সটেনশনে সমর্থন করা হয়েছিল :) ৪. মুনির সাথে নুনিত মিলিয়ে একই জিনিস তৈরি করে। ৫. বিডির জন্য আমি স্পেসফ্লো বলব যা অনেক ইউনিট টেস্টিং ফ্রেমওয়ার্কের সাথে সহজেই সংহত হয়।
কলুষিত

8
আমি xUnit এর শব্দটি পছন্দ করি, তবে এটিতে জিলচ ডকুমেন্টেশন রয়েছে :(
কর্নেল আতঙ্ক

10
xUnit এর যাবতীয় কোনও ডকুমেন্টেশন নেই! উদাহরণস্বরূপ: Traitসত্যই কী করে তা সন্ধান করার চেষ্টা করুন বা আপনি একক পিতামাতার পরীক্ষার মধ্যে বিভিন্ন পরীক্ষাগুলি গ্রুপ করতে পারেন (উদাহরণস্বরূপ সমস্ত এ এর testsমধ্যে testfixture)। nUnit এক্স ইউনিতের পরীক্ষাগুলির সমতল দৃষ্টিভঙ্গির পরিবর্তে দুর্দান্ত শ্রেণিবিন্যাস দেখায়। প্লাস নামকরণ কোন ধারণা দেয় না - ঘটনা এবং তত্ত্ব? বাস্তববাদী হও! এগুলিকে টেস্ট এবং ডেটা বলা হয়।
ডিপস্পেস 101

134

NUnit সম্ভবত তৃতীয় পক্ষের সরঞ্জামগুলির দ্বারা সর্বাধিক সমর্থিত। এটি অন্য তিনটির তুলনায় প্রায় দীর্ঘ হয়ে গেছে।

আমি ব্যক্তিগতভাবে ইউনিট টেস্ট ফ্রেমওয়ার্কগুলি সম্পর্কে বেশি যত্ন নিই না, ঠাট্টা করা লাইব্রেরিগুলি আইএমএইচও অনেক গুরুত্বপূর্ণ (এবং আপনাকে আরও অনেক বেশি লক করে রাখে)। কেবল একটি বাছাই করুন এবং এটি দিয়ে আটকে দিন।


3
আপনার শীর্ষ মক লাইব্রেরি বাছাই কি?
dplante

31
আমি মোককে পছন্দ করি, রাইনোমকসও ভাল।
আলেকজান্ডার কোজেভনিকিকভ

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

4
ফেকআইটিএজির সাথে এমএসপেক ... পরীক্ষার কেসগুলি আরও পঠনযোগ্য করে তোলে
রবি

5
এনএসবিস্টিটিউট এবং অটো ফিকচারের সাথে এমএসপেক আমার পছন্দ।
ড্যানিয়েল হিলগার্থ

108

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

আমি মনে করি না আপনি অন্যান্য ফ্রেমওয়ার্কগুলির মধ্যে কোনটি ব্যবহার করেন তা খুব বেশি গুরুত্বপূর্ণ। একে অপর থেকে অন্যের কাছে যাওয়া সত্যিই সহজ।

আমি আমার সহকর্মীদের পছন্দ অনুসারে ব্যক্তিগতভাবে XUnit.Net বা NUnit ব্যবহার করি। নুনিট সর্বাধিক স্ট্যান্ডার্ড। XUnit.Net হ'ল বিশ্রাম কাঠামো।


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

11
এমএসটিস্টের মতো ভয়াবহতা ডেকে আনার জন্য +1। দিনের শেষে, আপনি কোন ইউনিট পরীক্ষার কাঠামো ব্যবহার করেন তা বিবেচনা করে না, যতক্ষণ এটি এমএসটিস্ট নয়
মাইক মুনি

21

অন্য পরীক্ষার কাঠামোর সাথে এমএসটিস্টের পরিপূরক, প্রতিস্থাপন নয়, পরিপূরক বিবেচনা করুন। আরও পূর্ণ-বৈশিষ্ট্যযুক্ত টেস্টিং ফ্রেমওয়ার্কের সুবিধা পেয়ে আপনি ভিজ্যুয়াল স্টুডিও এমএসটিস্ট একীকরণ রাখতে পারেন।

উদাহরণস্বরূপ, আমি এমএসটিস্টের সাথে xUnit ব্যবহার করি। XUnit.dll সমাবেশে একটি রেফারেন্স যুক্ত করুন এবং ঠিক এর মতো কিছু করুন। আশ্চর্যজনকভাবে, এটি ঠিক কাজ করে!

using Microsoft.VisualStudio.TestTools.UnitTesting;
using Assert = Xunit.Assert;  // <-- Aliasing the Xunit namespace is key

namespace TestSample
{
    [TestClass]
    public class XunitTestIntegrationSample
    {
        [TestMethod]
        public void TrueTest()
        {
            Assert.True(true);  // <-- this is the Xunit.Assert class
        }

        [TestMethod]
        public void FalseTest()
        {
            Assert.False(true);
        }
    }
}

এই কৌশলটি NUnit, MBUnit, বা অন্যান্য উত্তরে উল্লিখিত অন্যান্য পরীক্ষামূলক ফ্রেমওয়ার্কগুলির জন্যও কাজ করতে পারে তবে আমি সেগুলি চেষ্টা করি নি।
ম্যাট ক্রাউচ

1
আপনি কী ভাবেন যে আমি এই পদ্ধতির সাথে এমএসটিস্টের সাথে কাজ করার জন্য প্যারামিটারাইজড টেস্ট পেতে পারি, ম্যাট?
ডেভডেভ

@ ডেভডেভ নং তাঁর উদাহরণে তিনি কেবলমাত্র অন্য সমাবেশ থেকে একটি শ্রেণি ব্যবহার করেছেন। আপনি যদি প্যারামিটারাইজড টেস্টগুলি চান তবে আপনার আরও একটি পরীক্ষার কাঠামো দরকার যা এমএসটিস্টের প্রসারিত করার জন্য বিশেষভাবে নির্মিত।
zoran404

3
Suprisingly, it just works!আপনি সবেমাত্র অন্য সমাবেশ থেকে একটি স্থির ফাংশন কল করেছেন। আপনি কেন অবাক হচ্ছেন যে এটি কাজ করে? এছাড়াও যদি আপনার কেবল প্রয়োজনের প্রয়োজন হয় তবে কেন এটির জন্য বিশেষভাবে তৈরি একটি অ্যাসেম্বলি ব্যবহার করবেন না?
zoran404

9

নুনিত সি ++ তে মিক্সড-মোড প্রকল্পগুলির সাথে ভাল কাজ করে না তাই আমাকে এটিকে ফেলে দিতে হয়েছিল


3
আমি এই উত্তরের জন্য গর্বিত নই তবে আমি সেই প্রকল্পের ইউনিট পরীক্ষা বাদ দিয়েছি। আমি ত্রুটিগুলি রানটাইম সনাক্তকরণের জন্য প্রচুর বৈধতা রচনা
এরিক

2
আমি মিক্সড-মোডে নুনিট ব্যবহার করার আশা করছিলাম তবে এটি অপ্রতুলও পেয়েছি, শেষ পর্যন্ত আমি গুগলতেস্টের জন্য গিয়েছিলাম যা একটি চমৎকার সি ++ ইউনিট পরীক্ষার কাঠামো এবং সেট আপ করা v সহজ।
চিলিটোম

8

এটি একটি ছোট / ব্যক্তিগত স্কেলে কোনও বড় বিষয় নয়, তবে এটি বৃহত্তর স্কেলে দ্রুত একটি বড় চুক্তিতে পরিণত হতে পারে। আমার নিয়োগকর্তা একটি বড় মাইক্রোসফ্ট শপ, তবে বিভিন্ন কারণে টিম সিস্টেম / টিএফএসে কিনতে পারবেন না। আমরা বর্তমানে সাবভারসিওন + অর্কেস + এমবিউনিট + টেস্টড্রাইভন.এনইটি ব্যবহার করি এবং এটি ভালভাবে কাজ করে তবে টিডি.নেট প্রাপ্তি একটি বিশাল ঝামেলা ছিল। MBUnit + TestDriven.NET এর সংস্করণ সংবেদনশীলতাও একটি বড় ঝামেলা এবং হ্যান্ডেল এবং পরিচালনা করার জন্য আইনী পর্যালোচনা করা ও সংগ্রহের জন্য একটি অতিরিক্ত বাণিজ্যিক জিনিস (টিডি.এনইটি) রাখা তুচ্ছ নয়। আমার সংস্থা, অনেক সংস্থার মতো, একটি এমএসডিএন সাবস্ক্রিপশন মডেল দ্বারা চর্বিযুক্ত এবং খুশি, এবং এটি শত শত বিকাশকারীদের জন্য একের কাছ থেকে সংগ্রহের জন্য ব্যবহার করা হয়নি। অন্য কথায়, সম্পূর্ণ ইন্টিগ্রেটেড এমএস অফার, যদিও অবশ্যই সর্বদা সেরা-ব্রেড না হয়, এটি আমার মতে একটি উল্লেখযোগ্য মূল্য-যোগ।

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


2
এই স্থানটিতে রিশার্পারের একটি আকর্ষণীয় অফার রয়েছে!
কাঠবিড়ালি

7
আপনার উত্তরটি কৌতূহলযুক্ত এবং স্ব-বিরোধী বলে মনে হচ্ছে। আপনি বলছেন যে আপনি একটি বড় মাইক্রোসফ্ট-শপ, তবে টিএফএস ব্যবহার করবেন না (এটি সম্পূর্ণ পয়েন্ট- এটি ছাড়া উল্লম্ব একীকরণের সুবিধা আপনি পাবেন না) এবং একটি এমএসডিএন সাবস্ক্রিপশন মডেল ব্যবহার করবেন না, তবে একটি নন ব্যবহার করছেন -এমএস পদ্ধতির। আমি হারিয়েছি, সত্যি বলতে। দুর্ভাগ্যক্রমে ভালই পুরানো উত্তর।
নিকোডেমাস 13

6

এটি কোনও বড় বিষয় নয়, তাদের মধ্যে স্যুইচ করা বেশ সহজ। এমএসটিস্ট একত্রিত হওয়া কোনও বড় বিষয় নয়, কেবল টেস্টড্রাইভন.টাকে ধরুন।

পূর্ববর্তী ব্যক্তি যেমন একটি বিদ্রূপের কাঠামো বেছে নিন বলেছিলেন, এই মুহুর্তে আমার প্রিয়টি মাক।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.