অস্থায়ীভাবে পৃথক পাইথন ইউনিট পরীক্ষা অক্ষম করুন


128

unittestপাইথনের মডিউলটি ব্যবহার করার সময় পৃথক ইউনিট পরীক্ষাগুলি কীভাবে সাময়িকভাবে অক্ষম করা যায় ?

উত্তর:


229

পৃথক পরীক্ষার পদ্ধতি বা ক্লাস উভয়ই unittest.skipসজ্জা ব্যবহার করে অক্ষম করা যায় ।

@unittest.skip("reason for skipping")
def test_foo():
    print('This is foo test case.')


@unittest.skip  # no reason needed
def test_bar():
    print('This is bar test case.')

অন্যান্য বিকল্পের জন্য স্কিপিং পরীক্ষা এবং প্রত্যাশিত ব্যর্থতার জন্য ডকগুলি দেখুন


9
পাইথন 3-তে, @unittest.SkipTest@unittest.skip
আকিফের

7
আমি পাইথন ৩.6.১ ব্যবহার করছি এবং @unittest.skipএটিও দুর্দান্ত কাজ করে works
পিট

2
পাইথ, পাইথন ৩.৪.০ এ @unittest.skipকাজ করে না।
লাইফব্লেন্স

কীভাবে বাচ্চাদের ক্লাস বাদ দেওয়া যায়?
পুনর্জনহান

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

26

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

def disabled(f):
    def _decorator():
        print f.__name__ + ' has been disabled'
    return _decorator

@disabled
def testFoo():
    '''Foo test case'''
    print 'this is foo test case'

testFoo()

আউটপুট:

testFoo has been disabled

11

সর্বশেষতম সংস্করণ (২.7 - অপ্রকাশিত) পরীক্ষা স্কিপিং / অক্ষম করাটিকে সমর্থন করে । আপনি কেবলমাত্র এই মডিউলটি পেতে পারেন এবং এটি আপনার বিদ্যমান পাইথন ইনস্টল করতে ব্যবহার করতে পারেন। এটা সম্ভবত কাজ করবে।

এর আগে, আমি যে পরীক্ষাগুলি xtest_testnameথেকে এড়িয়ে যেতে চেয়েছিলাম তার পুনরায় নামকরণ করতাম test_testname


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

  (defun disable_enable_test ()
  (interactive "")
  (save-excursion
    (beginning-of-line)
    (search-forward "def")
    (forward-char)
    (if (looking-at "disable_")
    (zap-to-char 1 ?_)
      (insert "disable_"))))

+1, তবে পুরো প্রকল্পে আমি প্রত্যেকে কাজ করছি অজগর v2.6.2 ব্যবহার করছি, এবং আমি মনে করি না এটি পরিবর্তন হবে: /, তবে এটি একটি সমাধান, ধন্যবাদ
coelhudo

আপনি একটি
টেস্টকেস

আমিও একজন ইমাক্স ব্যবহারকারী, আপনি কি ম্যাক্রো তৈরি করেছেন?
coelhudo

নাঃ। আমি কেবল তাদের ব্যর্থ হতে দিয়েছি তবে এটি এতটা কঠিন নয়। যদিও আমি দ্রুততার সাথে উত্তরটি আপডেট করেছি।
নওফাল ইব্রাহিম

এই গৃহীত উত্তরটি কোনও উত্তর নয়, কেবল একটি লিঙ্ক। আসল, বর্তমান উত্তরটি শীর্ষ ভোটের একটিও নয়। মঞ্জুর, এটি 4 বছর বয়সী। কৃতজ্ঞতাপূর্ণ এলিস্প নিছক বিস্মৃত হয়।
jwd630

10

কেবল @unittest.SkipTestপরীক্ষার উপরে সজ্জা স্থাপন করা যথেষ্ট।


কে করল জানি না। তবে, আমি ডকুমেন্টেশন পড়ছিলাম এবং এটি বলে যে স্কিপটেষ্ট একটি ব্যতিক্রম। যাইহোক, এটি ইউনিটেস্ট.স্কিপ থেকে পৃথক পৃথক পৃথক sk আমি কি সঠিক? আকর্ষণীয় শক্ত।
coelhudo

unittest.skip(কারণ ছাড়াই) আমার পাইথন 2 ত্রুটি দেয় কিন্তু পাইথন 3. নেই
Akif

5

আমি কেবল একটি আন্ডারস্কোর দিয়ে একটি পরীক্ষার কেস পদ্ধতির নাম পরিবর্তন করেছি: টেস্ট_মাইফ্যাঙ্ক _টেস্ট_মাইফঙ্ক হয়ে যায়।


3

ডক্স 2.1 জন্য একটি উপেক্ষা বা এড়িয়ে পদ্ধতি উল্লেখ না।

সাধারণত যদিও, আমি যখন প্রয়োজন মন্তব্য মন্তব্য ব্লক।


1

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

আমার ব্যবহারের ক্ষেত্রে, সমাধানটি পরীক্ষার কোডে নয়, পরীক্ষার দৌড়ে রয়েছে। আমি ব্যবহার pytest । পাইস্টের সাহায্যে কমান্ড লাইন থেকে একটি একক পরীক্ষা নির্দিষ্ট করা সহজ:

পাইস্টেস্ট পিওয়াইথন_এফআইএল। TEST_CLASS.TEST_NAME

(ক্যাপগুলি আপনার মানগুলির সাথে প্রতিস্থাপন করুন)।

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

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

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