পরীক্ষার প্রয়োগের সময়গুলি মুদ্রণ করা এবং পাইস্টেস্টের সাথে ধীর পরীক্ষাগুলি পিন করা


117

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

(ধীর) পরীক্ষার কার্যকর সময়টি py.test মুদ্রণ করার কোনও উপায় আছে, তাই সমস্যাযুক্ত পরীক্ষাগুলি পিন করা সহজ হয়ে যায়?

উত্তর:


170

আমি নিশ্চিত না যে এটি আপনার সমস্যার সমাধান করবে, তবে আপনি পরীক্ষা স্যুট শেষ হওয়ার পরে --durations=Nধীরতম Nপরীক্ষাগুলি মুদ্রণ করতে পাস করতে পারেন ।

--durations=0সমস্ত মুদ্রণ করতে ব্যবহার করুন ।


88
আপনি যদি --durations=0সকল পরীক্ষার জন্য মৃত্যুদণ্ড কার্যকর করেন তবে রিপোর্ট করা হবে।
ওলাস

আপনি কি জানেন যে উত্পন্ন এইচটিএমএল কভারেজ রিপোর্টে এটি যুক্ত করার কোনও সম্ভাবনা রয়েছে কিনা? .coveragercবিষয়বস্তু সহ ফাইল যুক্ত করার মতো [run] branch = Trueশাখাগুলির কভারেজের তথ্য যুক্ত করে?
মার্টিন থোমা

আপনাকে সেই তথ্যটি নিজেরাই যুক্ত করতে হবে, পাইস্ট-এইচটিএমএলের অতিরিক্ত সামগ্রী অন্তর্ভুক্ত করার জন্য সমর্থন রয়েছে।
ব্রুনো অলিভিরা

4
@ ওলাস: এটি সত্য নয়: পরীক্ষাগুলি যদি "খুব দ্রুত" হয় তবে মাপা সময়টি দৃশ্যত 0 হয়ে যায় এবং সেগুলি এখনও ফিল্টার করে দেওয়া হবে। একটি নেতিবাচক প্রান্তিক এছাড়াও এই ক্ষেত্রে সাহায্য করে না। এই পদ্ধতির সাথে আরেকটি বিরক্তি হ'ল পাইস্টেস্ট সর্বদা মুদ্রণ করবে (0.00 durations hidden. Use -vv to show these durations.)যা কোনও অর্থ দেয় না।
bluenote10

17

আপনি নম্বর দিয়ে পাস করতে পারেন --durations

pytest --durations=0 — Show all times for tests and setup and teardown

pytest --durations=1 — Just show me the slowest

pytest --durations=50 — Slowest 50, with times,  etc

এগুলিতে উল্লেখ করুন: https://medium.com/@brianokken/pytest-durations-0-show-all-times-for-tests-and-setup-and-teardown-848dccac85db

বা: https://docs.pytest.org/en/latest/usage.html#profiling-test-execution-duration

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