conftest সমাধান
সর্বনিম্ন আক্রমণাত্মক সমাধানটি ডিরেক্টরিতে নামের একটি খালি ফাইল যুক্ত conftest.pyকরছে repo/:
$ touch repo/conftest.py
এটাই. ম্যাংলিংয়ের জন্য কাস্টম কোড লেখার দরকার নেই sys.pathবা PYTHONPATHধরে টেনে আনতে বা __init__.pyএটি যেখানে নেই সেখানে ডায়ারে রেখে ।
প্রকল্পের ডিরেক্টরি পরে:
repo
├── conftest.py
├── app.py
├── settings.py
├── models.py
└── tests
└── test_app.py
ব্যাখ্যা
pytestজন্য দেখায় conftestপরীক্ষা সংগ্রহের মডিউল কাস্টম আঙ্গুলসমূহ এবং রাজধানী জড়ো করা, এবং যাতে তাদের থেকে কাস্টম বস্তু আমদানি করতে, pytestঅভিভাবক সংকলনে যোগ করা conftest.pyথেকেsys.path (এই ক্ষেত্রে repoডিরেক্টরির)।
অন্যান্য প্রকল্প কাঠামো
আপনি অন্যান্য প্রকল্পের গঠন থাকে, তাহলে স্থান conftest.pyপ্যাকেজ রুট দির (এক যে প্যাকেজ ধারণ করে কিন্তু একটি প্যাকেজ নিজেই নন, সুতরাং নেই না একটি ধারণ __init__.py), উদাহরণস্বরূপ:
repo
├── conftest.py
├── spam
│ ├── __init__.py
│ ├── bacon.py
│ └── egg.py
├── eggs
│ ├── __init__.py
│ └── sausage.py
└── tests
├── test_bacon.py
└── test_egg.py
src বিন্যাস
এই পদ্ধতির ব্যবহার করা যেতে পারে যদিও srcলেআউট (জায়গা conftest.pyমধ্যে srcDir):
repo
├── src
│ ├── conftest.py
│ ├── spam
│ │ ├── __init__.py
│ │ ├── bacon.py
│ │ └── egg.py
│ └── eggs
│ ├── __init__.py
│ └── sausage.py
└── tests
├── test_bacon.py
└── test_egg.py
হুঁশিয়ার যোগ করেন যে srcকরতে PYTHONPATHহ্রাস অর্থ এবং সুবিধাগুলো srcবিন্যাস! আপনি ইনস্টল করা প্যাকেজটি নয়, সংগ্রহস্থল থেকে কোডটি পরীক্ষা করে শেষ করবেন। আপনার যদি এটি করার দরকার হয় তবে আপনার srcদির মোটেই প্রয়োজন নেই ।
এখান থেকে কোথায় যাব
অবশ্যই conftestমডিউলগুলি সোর্স কোড আবিষ্কারে সহায়তা করার জন্য কিছু ফাইল নয়; pytestফ্রেমওয়ার্কের সমস্ত প্রকল্প-নির্দিষ্ট বর্ধন এবং আপনার পরীক্ষার স্যুটের কাস্টমাইজেশন ঘটে it's তাদের ডক্স জুড়ে ছড়িয়ে ছিটিয়ে থাকা মডিউলগুলির pytestপ্রচুর তথ্য রয়েছে ; দিয়ে শুরু : স্থানীয় প্রতি ডিরেক্টরি প্লাগইনconftestconftest.py
এছাড়াও, conftestমডিউলগুলির বিষয়ে এসওর একটি দুর্দান্ত প্রশ্ন রয়েছে : পাইস্টেস্টে, কনফেস্টে.পি ফাইলগুলির ব্যবহার কী?