আমি কীভাবে ইস্তাম্বুলের কভারেজ রিপোর্ট পড়ব?


131

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

প্রশ্ন : আমি যেমনটি বলেছি আমি এর সংক্ষিপ্ততা পেয়েছি, তবে কেউ কি সঠিক ব্যাখ্যা বা সঠিক ব্যাখ্যার লিঙ্ক পোস্ট করতে পারেন?

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

-------------------|-----------|-----------|-----------|-----------|
File               |   % Stmts |% Branches |   % Funcs |   % Lines |
-------------------|-----------|-----------|-----------|-----------|
   controllers/    |      88.1 |     77.78 |     78.57 |      88.1 |
      dashboard.js |      88.1 |     77.78 |     78.57 |      88.1 |
-------------------|-----------|-----------|-----------|-----------|
All files          |      88.1 |     77.78 |     78.57 |      88.1 |
-------------------|-----------|-----------|-----------|-----------|

3
ইস্তানবুল চালানোও প্রতিবেদনের জন্য একটি HTML ফাইল তৈরি করতে হবে (কভারেজ ফোল্ডারে থাকা উচিত)। আপনি যখন ফাইল / ফোল্ডারগুলিতে ক্লিক করেন তখন এই এইচটিএমএলটি আপনাকে ড্রিল-ডাউন তথ্য দিতে হবে
ইয়ারন শোয়িমার

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

উত্তর:


217

কভারেজের অনেকগুলি মানদণ্ড রয়েছে যার মধ্যে প্রধান বিষয়গুলি হ'ল:

  • ফাংশন কভারেজ প্রোগ্রামের প্রতিটি ফাংশন (বা সাবরুটিন) বলা হয়েছে?
  • বিবৃতি কভারেজ প্রোগ্রামের প্রতিটি বিবৃতি কার্যকর করা হয়েছে?
  • শাখার কভারেজ প্রতিটি নিয়ন্ত্রণ কাঠামোর প্রতিটি শাখা (যেমন ডিডি-পাথও বলা হয়) কার্যকর করা হয়েছে (যেমন যদি এবং কেস স্টেটমেন্টগুলি থাকে)? উদাহরণস্বরূপ, যদি একটি বিবৃতি দেওয়া হয়, সত্য এবং মিথ্যা উভয় শাখা কার্যকর করা হয়েছে? এটি বলার আর একটি উপায় হ'ল, প্রোগ্রামটির প্রতিটি প্রান্তটি কার্যকর করা হয়েছে?
  • সোর্স ফাইলে প্রতিটি এক্সিকিউটেবল লাইন কি লাইন কভারেজ কার্যকর করে?

প্রতিটি ক্ষেত্রে শতাংশ শতাংশ সম্পাদিত কোড বনাম নয়-সম্পাদিত কোড উপস্থাপন করে যা শতাংশ বিন্যাসে প্রতিটি ভগ্নাংশের সমান (যেমন: 50% শাখা, 1/2)।

ফাইল রিপোর্টে:

  • 'E' এর অর্থ দাঁড়ায় 'অন্য পথ নেওয়া হয়নি', যার অর্থ চিহ্নিত চিহ্নযুক্ত / / অন্য বিবৃতিটির জন্য, 'যদি' পথটি পরীক্ষা করা হয়েছে তবে 'অন্য' নয়।
  • 'I' এর অর্থ দাঁড়ায় 'যদি পথ না নেওয়া হয়', যা বিপরীত ক্ষেত্রে: 'যদি' পরীক্ষা করা হয়নি।
  • xNবাম কলামে সময়ের পরিমাণ যে লাইন মৃত্যুদন্ড কার্যকর করা হয়েছে।
  • মৃত্যুদন্ড কার্যকর করা লাইন বা কোডের টুকরোগুলি লাল রঙে হাইলাইট করা হবে।

এটি ইস্তাম্বুল v0.4.0 এর জন্য যাচাই করা হয়েছে, এটি এখনও পরবর্তী সংস্করণগুলির জন্য প্রযোজ্য কিনা তা আমি নিশ্চিত নই, তবে গ্রন্থাগারটি কঠিন তাত্ত্বিক নীতিগুলির উপর ভিত্তি করে, আচরণটি নতুন সংস্করণের জন্য খুব বেশি পরিবর্তন করা উচিত নয়।

এটি কিছু রঙের কোডও সরবরাহ করে -

গোলাপী : বিবৃতি coveredাকা নেই।

কমলা : ফাংশনগুলি আচ্ছাদিত নয়।

হলুদ : শাখা coveredাকা নেই covered

সম্পূর্ণ ইস্তাম্বুল ডক্স এখানে:

https://istanbul.js.org

কোড কভারেজ সম্পর্কে আরও গভীরতার তত্ত্বের জন্য:

https://en.wikipedia.org/wiki/Code_coverage

আশা করি এটা সাহায্য করবে!


8

ইস্তানবুল চালানোও প্রতিবেদনের জন্য একটি HTML ফাইল তৈরি করতে হবে (কভারেজ ফোল্ডারে থাকা উচিত)। আপনি ফাইল / ফোল্ডারগুলিতে ক্লিক করার সময় এই এইচটিএমএলটি আপনাকে ড্রিল-ডাউন তথ্য দিতে হবে।

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

আশা করি বিষয়গুলি আরও স্পষ্ট করে তোলে।


আমি নির্দিষ্ট করে ইস্তানবুল দৌড়ে "test" : "nyc mocha"মধ্যে package.json। আমার কভারেজ ফোল্ডারটি ফাঁকা। থটস?
TheCrazyProgrammer

1
আমি এইচটিএমএল প্রতিবেদক যুক্ত। এখন এটা কাজ করে. "test" : "nyc --reporter=html mocha"
TheCrazyProgrammer

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

0

পূর্ববর্তী উত্তরগুলি যুক্ত করা হচ্ছে

% স্টেটমেন্টগুলি আপনার পরীক্ষার দ্বারা কভার করা স্টেটমেন্টের সংখ্যার শতাংশ গ্রহণ করে গণনা করা হয় যেমন 12/18 * 100 = 66.67%। এর অর্থ হল আপনার পরীক্ষাটি কেবল 667. %7% কভার হয়েছে।

% শাখাটিও একইভাবে গণনা করা হয়। আপনার% কার্য এবং% লাইনের জন্য একই for

আপনার প্রকল্পের মূল ডিরেক্টরিতে, একটি কভারেজ ফোল্ডার রয়েছে যা আপনার পরীক্ষার এইচটিএমএল আউটপুট ধারণ করে। এটিতে ক্লিক করুন এবং এটি ব্রাউজারে দেখুন। আপনার এমন কিছু দেখা উচিত

আপনার পরীক্ষার ফলাফলের আউটপুট দেখাচ্ছে চিত্র

আমি আশা করি এটি আপনাকে আরও ভাল করে বুঝতে সহায়তা করে।

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