জাস্টের সাথে কেবল একটি পরীক্ষা চালান


95

খুব সহজ, আমি জেস্টের সাথে কেবল একটি পরীক্ষা চালাতে চাই।

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

কী কারণে এই আচরণ এবং কীভাবে একটি একক পরীক্ষা চালানো যায়?



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

@ জেপেনা: কেবল আসল প্রশ্নটি দেখুন। একই উত্তর দেওয়া হয়েছিল।
ড্যান ড্যাসকলেসকু

উত্তর:


122

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

fit, fdescribeএবং it.only, describe.onlyএকই উদ্দেশ্য রয়েছে, অন্যান্য পরীক্ষা ছেড়ে যান, কেবল আমাকে চালান।

সূত্র: https://github.com/facebook/jest/issues/698#issuecomment-177673281


jestফিল্টারিং মেকানিজম ব্যবহার করুন , আপনি যখন পরীক্ষা পছন্দ করেন তখন

jest --config=jest.config.json --watch

আপনি একটি দ্বারা পরীক্ষা ফিল্টার করতে পারেন testnameবা filenameশুধু টার্মিনাল নির্দেশগুলি অনুসরণ

এখানে চিত্র বর্ণনা লিখুন

টিপুন p, তারপরে একটি ফাইলের নাম টাইপ করুন

এখানে চিত্র বর্ণনা লিখুন

তারপরে আপনি ব্যবহার করতে পারবেন describe.onlyএবং it.onlyযা ফিল্টারযুক্ত, পরীক্ষিত ফাইল থেকে অন্য সমস্ত পরীক্ষাগুলি এড়িয়ে যাবে।


4
আমি ফাইলটি এই ফিল্টারটি করছি, তবে এটি অদ্ভুত ... সুতরাং .onlyকেবল একই ফাইলটির পরীক্ষার জন্য কী কাজ করে?
জেপেনা

4
আমি এটি আরও বেশি পছন্দ করি ly কেবলমাত্র জিনিসটি as
ডিজিমিড

4
যদিও পরীক্ষাগুলি বাদ দেওয়া হয় তবুও এটি প্রতিটি উদাহরণে পরীক্ষার অধীনে কোডটি মূল্যায়ন করে বলে মনে হচ্ছে। 2019 সালে কি কেবলমাত্র একক পরীক্ষা চালানোর কোনও উপায় নেই?
অ্যাডাম

@ এডাম আমি আপনার প্রশ্নটি সঠিকভাবে বুঝতে পেরেছি কিনা তা আমি নিশ্চিত নই, তাই আমি ভুল হলে আমাকে সংশোধন করুন। যদি পরীক্ষাগুলি পৃথক ফাইলে থাকে তবে নির্দিষ্ট ফাইলগুলিতে কেবল কোড কার্যকর করা হয় যখন আপনি স্পষ্টভাবে পরীক্ষা চালানোর জন্য প্যাটার্ন ব্যবহার করেন। নির্দিষ্ট ফাইলের কোড কার্যকর করা হলে, সেই ফাইলের পুরো কোডটি পার্স করা হয় তাই আপনি ব্যবহার করতে it.onlyবা it.skipসিনট্যাক্স ত্রুটিযুক্ত একটি একক পরীক্ষার জন্যও, সমস্ত পরীক্ষা ব্যর্থ হবে। অবশ্যই প্যাটার্ন দ্বারা বাদ দেওয়া ফাইলগুলি থেকে কোড কার্যকর করা হবে না। imgur.com/z9FlQEZ
দাউদ

@ ননোক আপনার ক্যারোসেল উপাদানটিতে একটি কনসোল.লগ চাপুন এবং আপনার পরীক্ষা রানারকে পুনরায় চালু করুন। আমার জন্য, এমনকি যদি আমি if.onlyআপনার ঘড়ির নিদর্শনগুলিতে সেই উপাদানটির জন্য স্কিপড / আনস্কিপড পরীক্ষাগুলি যতবার না ক্যারোসেল উপাদান থেকে কনসোল.লগগুলি ব্যবহার করি ততবার।
অ্যাডাম

29

it.onlyএবং describe.onlyকেবলমাত্র যে মডিউলটিতে রয়েছে সেগুলির জন্যই কাজ করুন multiple যদি আপনার একাধিক ফাইলগুলিতে পরীক্ষাগুলি ফিল্টার করতে সমস্যা হয় তবে আপনি jest -t name-of-specফিল্টারিং টেস্টগুলি যা নির্দিষ্ট নামের সাথে মেলে (বর্ণনামূলক বা পরীক্ষায় নামের সাথে মেলে)।
সূত্র: https://facebook.github.io/jest/docs/en/cli.html

উদাহরণস্বরূপ, আমি বর্তমানে পরীক্ষাগুলি ফোকাস করছি যা আমি বর্তমানে এটির মতো লিখছি (এতে পরীক্ষার স্ক্রিপ্ট সহ package.json):
npm test -- -t "test foo"


4
এটি এখনও আমার ক্ষেত্রে প্রতিটি পরীক্ষা চালায় এবং কেন আমার কোনও ধারণা নেই
কেনি

একমাত্র ব্যাখ্যা যা আমি ভাবতে পারি তা হ'ল আপনি একটি স্ট্রিং আর্গুমেন্টটি পাস করছেন যা প্রতিটি পরীক্ষার নাম (বা টেস্ট describeব্লক) এ বিদ্যমান। যদি এমনটি হয় তবে আপনি যে সঠিক পরীক্ষার নামটি ফোকাস করতে চান তা সঙ্কুচিত করা উচিত।
রডগোবিবি

এই উত্তরটি অন্য প্রশ্নের জন্য অনেক বেশি উপযুক্ত বলে মনে হচ্ছে: স্ট্যাকওভারফ্লো
千 木 郷

8

এটি এর মতো:

jest sometest.test.js -t "some expression to match a describe or a test"

এটি টি-টি sometest.test.jsবিকল্পের উপর ভিত্তি করে নাম এবং মিলের সাথে সমস্ত ফাইল পরীক্ষা করবে , আপনি যদি কেবল একটি নির্দিষ্ট ফাইল পরীক্ষা করতে চান তবে আপনি এটি করতে পারেন:

jest src/user/.../sometest.test.js

একটি VSCode মধ্যে এই অপশনটি বাস্তবায়ন খুঁজছেন তাদের জন্য launch.json: যে একটি নির্দিষ্ট পরীক্ষা ক্ষেত্রে এ পরীক্ষা আরম্ভ হবে কনফিগ ফাইল medium.com/better-programming/...
গাস

8

আমার জন্য এটি কাজ করে যদি আমি 2 টি প্যারাম ব্যবহার করি:

yarn test --watch -f "src/...fullpath.../reducer.spec.js" -t "Name of the test"

পতাকা:

--watch: is optional

-f: will do filtering of your files, so if you have a lot of tests with the same name, specify the full path to the exact file

-t: works with 'describe' name or 'it' name of your test
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.