সাধারণ বিল্ড কনফিগারেশন

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

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

কাস্টম পরীক্ষার ব্যবস্থা করতে বা অ্যান্ড্রয়েডের সামঞ্জস্য পরীক্ষা টেস্ট স্যুট (সিটিএস) ব্যবহার করতে পরিবর্তে কমপ্লেক্স টেস্ট কনফিগারেশন অনুসরণ করুন।

উদাহরণ

নীচের এন্ট্রিগুলি নীল নকশার কনফিগারেশন ফাইলের এই উদাহরণ থেকে আসে: / প্ল্যাটফর্ম_টেষ্টিং / টেস্টস / উদাহরণ / অন্তঃসত্ত্বা / অ্যান্ড্রয়েড.বিপি

সুবিধার জন্য এখানে একটি স্ন্যাপশট অন্তর্ভুক্ত করা হয়েছে:

android_test {
    name: "HelloWorldTests",
    srcs: ["src/**/*.java"],
    sdk_version: "current",
    static_libs: ["android-support-test"],
    certificate: "platform",
    test_suites: ["device-tests"],
}

শুরুতে android_test ঘোষণাটি নোট করুন এটি একটি পরীক্ষা। android_app অন্তর্ভুক্ত বিপরীতে ইঙ্গিত দেয় এটি পরিবর্তে একটি বিল্ড প্যাকেজ।

সেটিংস

নিম্নলিখিত সেটিংস গ্যারান্টি ব্যাখ্যা:

    name: "HelloWorldTests",

যখন android_test মডিউল টাইপ নির্দিষ্ট করা হয় (ব্লকের শুরুতে) তখন name সেটিংটি প্রয়োজনীয়। এটি আপনার মডিউলটিকে একটি নাম দেয় এবং ফলস্বরূপ এপিএকে একই নাম দেওয়া হবে এবং একটি .apk প্রত্যয় যুক্ত করা হবে, উদাহরণস্বরূপ, এই ক্ষেত্রে ফলস্বরূপ পরীক্ষার এপিকে HelloWorldTests.apk নাম দেওয়া হয়েছে। এছাড়াও, এটি আপনার মডিউলটির জন্য একটি মেক টার্গেটের নামও সংজ্ঞায়িত করে, যাতে আপনি নিজের পরীক্ষার মডিউল এবং এর সমস্ত নির্ভরতা তৈরি করতে make [options] <HelloWorldTests> ব্যবহার make [options] <HelloWorldTests> পারেন।

    static_libs: ["android-support-test"],

static_libs সেটিং বিল্ড সিস্টেমকে বর্তমান মডিউলটির ফলিত static_libs নামযুক্ত মডিউলগুলির বিষয়বস্তু অন্তর্ভুক্ত করার নির্দেশ দেয়। এর অর্থ হ'ল প্রতিটি নামক মডিউলটি একটি .jar ফাইল তৈরি করবে এবং এর সামগ্রীটি সংকলনের সময় ক্লাসপাথের রেফারেন্সগুলি সমাধান করার জন্য, পাশাপাশি ফলিত এপিপিতে অন্তর্ভুক্ত করার জন্য ব্যবহৃত হবে।

এই উদাহরণে, পরীক্ষাগুলির জন্য সাধারণত যে জিনিসগুলি কার্যকর হতে পারে:

android-support-test অ্যান্ড্রয়েড টেস্ট সমর্থন লাইব্রেরির জন্য AndroidJUnitRunner , এতে নতুন পরীক্ষার রানার AndroidJUnitRunner : JUnit4 পরীক্ষার কাঠামোর সমর্থন সহ এখন AndroidJUnitRunner বিল্ট-ইন InstrumentationTestRunner একটি প্রতিস্থাপন। অ্যান্ড্রয়েডের টেস্ট অ্যাপ্লিকেশনগুলিতে আরও পড়ুন।

আপনি যদি কোনও নতুন উপকরণের মডিউল তৈরি করছেন তবে আপনার পরীক্ষা চালক হিসাবে সর্বদা আপনার android-support-test লাইব্রেরি দিয়ে শুরু করা উচিত। প্ল্যাটফর্ম উত্স ট্রিতে অন্যান্য দরকারী পরীক্ষামূলক ফ্রেমওয়ার্ক যেমন ub-uiautomator , mockito-target , easymock এবং আরও অনেক কিছু অন্তর্ভুক্ত।

    certificate: "platform",

certificate সেটিংটি বিল্ড সিস্টেমকে মূল প্ল্যাটফর্মের মতো একই শংসাপত্রের সাথে অ্যাপকে স্বাক্ষর করার নির্দেশ দেয়। আপনার পরীক্ষায় স্বাক্ষর দ্বারা সুরক্ষিত অনুমতি বা API ব্যবহার করা হলে এটি প্রয়োজন। মনে রাখবেন যে এটি প্ল্যাটফর্ম ক্রমাগত পরীক্ষার জন্য উপযুক্ত তবে এটি সিটিএস পরীক্ষার মডিউলগুলিতে ব্যবহার করা উচিত নয় । মনে রাখবেন যে এই উদাহরণটি কেবল উদাহরণের উদ্দেশ্যে এই শংসাপত্রের সেটিংটি ব্যবহার করে: উদাহরণের পরীক্ষার কোডটি বিশেষভাবে প্ল্যাটফর্মের শংসাপত্রের সাথে পরীক্ষার apk স্বাক্ষর করার প্রয়োজন হয় না।

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

অন্যান্য ক্ষেত্রে, আপনার এই সেটিংটি মোটেও দরকার নেই: বিল্ড সিস্টেমটি কেবল বিল্ট বৈকল্পিকের ভিত্তিতে একটি ডিফল্ট অন্তর্নির্মিত শংসাপত্র দিয়ে স্বাক্ষর করবে এবং এটিকে সাধারণত dev-keys বলা হয়।

    test_suites: ["device-tests"],

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

${ANDROID_PRODUCT_OUT}/testcases/HelloWorldTests/HelloWorldTests.apk

.চ্ছিক সেটিংস

নিম্নলিখিত alচ্ছিক সেটিংস গারনার ব্যাখ্যা:

    test_config: "path/to/hello_world_test.xml"

test_config সেটিংটি বিল্ড সিস্টেমকে নির্দেশ দেয় আপনার পরীক্ষার লক্ষ্যটির জন্য একটি নির্দিষ্ট কনফিগারেশন প্রয়োজন needs ডিফল্টরূপে, একটি AndroidTest.xml পাশে Android.bp কনফিগ সঙ্গে সংশ্লিষ্ট।

    auto_gen_config: true

auto_gen_config সেটিংটি স্বয়ংক্রিয়ভাবে টেস্ট কনফিগারেশন তৈরি করবেন কিনা তা নির্দেশ করে। তাহলে AndroidTest.xml পাশে বিদ্যমান নয় Android.bp , এই বৈশিষ্ট্য স্পষ্টভাবে সত্যতে সেট করা প্রয়োজন নেই।

    require_root: true

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

    test_min_api_level: 29

test_min_api_level সেটিংটি বিল্ড সিস্টেমকে স্বতঃ উত্পাদিত পরীক্ষা কনফিগারে MinApiLevelModuleController যোগ করার নির্দেশ দেয়। ট্রেড ফেডারেশন যখন পরীক্ষা কনফিগারেশন চালায়, ro.product.first_api_level < test_min_api_level ডিভাইস সম্পত্তিটি পরীক্ষা করা ছেড়ে দেওয়া হবে।