ইনস্ট্রুমেন্টেশন টেস্ট

প্রথম পড়া আপনার অ্যাপ্লিকেশন developer.android.com উপর। মনে রাখবেন প্ল্যাটফর্ম টেস্টিংয়ে কীভাবে যন্ত্র পরীক্ষা ব্যবহার করা হয় তার কিছু পার্থক্য রয়েছে।

সংক্ষেপে বলা যায়, একটি যন্ত্রানুষঙ্গের পরীক্ষা হিসাবে মাধ্যমে চালু একটি বিশেষ পরীক্ষা সঞ্চালনের পরিবেশ প্রদান করে am instrument কমান্ড, যেখানে লক্ষ্যবস্তু আবেদন প্রক্রিয়া পুনরায় আরম্ভ এবং মৌলিক আবেদন প্রসঙ্গকে সক্রিয়া করা হয়, এবং একটি যন্ত্রানুষঙ্গের থ্রেড আবেদন প্রক্রিয়া VM- র ভিতরে শুরু হয়। আপনার পরীক্ষার কোডটির এই যন্ত্রানুষঙ্গের থ্রেডে সম্পাদন শুরু হয় এবং একটি সাথে উপলব্ধ করা হয় Instrumentation উদাহরণস্বরূপ যে পরীক্ষা অধীন আবেদন প্রক্রিয়া নিপূণভাবে আবেদন প্রসঙ্গ এবং API গুলি অ্যাক্সেস প্রদান করে।

মূল ধারণা

  • একটি যন্ত্রানুষঙ্গের একটি সঙ্গে, একটি অ্যাপ্লিকেশন প্যাকেজ ঘোষণা করা আবশ্যক <instrumentation> ট্যাগটি অধীনে নেস্টেড <manifest> আবেদন প্যাকেজ ম্যানিফেস্টের ট্যাগ।
  • একটি অ্যাপ্লিকেশন প্যাকেজ স্পষ্ট টেকনিক্যালি একাধিক থাকতে পারে <instrumentation> ট্যাগ, যদিও এটা সাধারণভাবে এই ফ্যাশন ব্যবহার করা হয় না।
  • প্রতিটি <instrumentation> থাকা আবশ্যক:
    • একটি android:name অ্যাট্রিবিউট: এটি একটি উপশ্রেণী নাম হওয়া উচিত Instrumentation যে পরীক্ষা অ্যাপ্লিকেশন, যা সাধারণত পরীক্ষা রানার ব্যবহার করা হচ্ছে, যেমন হয় অন্তর্ভুক্ত আছে: android.support.test.runner.AndroidJUnitRunner
    • একটি android:targetPackage অ্যাট্রিবিউট সংজ্ঞায়িত করা উচিত নয়। এর মান পরীক্ষার অধীনে অ্যাপ্লিকেশন প্যাকেজে সেট করা উচিত।

পদক্ষেপের সারাংশ

  1. ফ্রেমওয়ার্ক পরিষেবার বিরুদ্ধে হারমেটিক পরীক্ষার সাধারণ গন্তব্য নিচে দেওয়া হল:

    frameworks/base/core/tests/coretests
    frameworks/base/services/tests/servicestests
    

    আপনি যদি আপনার কম্পোনেন্টের জন্য একেবারে নতুন ইন্সট্রুমেন্টেশন মডিউল যোগ করছেন, দেখুন

  2. বিদ্যমান কনভেনশন অনুসরণ করে যদি আপনি উপরের কোন একটি স্থানে পরীক্ষা যোগ করছেন। যদি আপনি একটি নতুন পরীক্ষা মডিউল স্থাপনের হয়, এর সেটআপ অনুসরণ করুন AndroidManifest.xml এবং Android.mk উপরে অবস্থানে এক

  3. দেখুন অবকাঠামো / বেস / কোর / পরীক্ষার / coretests / উদাহরণের জন্য। লক্ষ্য করুন এই লাইনগুলি অতিরিক্ত অ্যাপ ইনস্টল করে:

    <option name="test-file-name" value="FrameworksCoreTests.apk" />
    <option name="test-file-name" value="BstatsTestApp.apk" />
    
  4. ভুলবেন না হিসাবে আপনার পরীক্ষা উপলক্ষে @SmallTest , @MediumTest বা @LargeTest

  5. এম দিয়ে পরীক্ষার মডিউল তৈরি করুন, যেমন:

    m FrameworksCoreTests
    
  6. পরীক্ষা চালান:

    m tradefed-all
    tradefed.sh run template/local_min --template:map test=FrameworksCoreTests
    
  7. ট্রেডফেড ব্যবহার না করলে, ম্যানুয়ালি ইনস্টল করুন এবং পরীক্ষা চালান:

    1. তৈরি apk ইনস্টল করুন:
    adb install -r ${OUT}/data/app/FrameworksCoreTests/FrameworksCoreTests.apk
    

    টিপ: আপনি ব্যবহার adb shell pm list instrumentation APK শুধু ইনস্টল ভিতরে instrumentations এটি

    1. বিভিন্ন বিকল্প সহ পরীক্ষা চালান:

      1. এপিকে সব পরীক্ষা

        adb shell am instrument -w com.android.frameworks.coretests\
          /android.support.test.runner.AndroidJUnitRunner
        
      2. একটি নির্দিষ্ট জাভা প্যাকেজের অধীনে সমস্ত পরীক্ষা

        adb shell am instrument -w -e package android.animation \
          com.android.frameworks.coretests\
          /android.support.test.runner.AndroidJUnitRunner
        
      3. একটি নির্দিষ্ট শ্রেণীর অধীনে সমস্ত পরীক্ষা

        adb shell am instrument -w -e class \
          android.animation.AnimatorSetEventsTest \
          com.android.frameworks.coretests\
          /android.support.test.runner.AndroidJUnitRunner
        
      4. একটি নির্দিষ্ট পরীক্ষা পদ্ধতি

        adb shell am instrument -w -e class \
          android.animation.AnimatorSetEventsTest#testCancel \
          com.android.frameworks.coretests\
          /android.support.test.runner.AndroidJUnitRunner
        

আপনার পরীক্ষার পাস উপর একটি সুনির্দিষ্ট বিবৃতি বা ব্যবহার ব্যর্থ হতে পারে JUnit API গুলি; উপরন্তু, কোন অচেনা ব্যতিক্রম একটি কার্যকরী ব্যর্থতার কারণ হবে।

কর্মক্ষমতা বৈশিষ্ট্যের মান নির্গত করতে, আপনার পরীক্ষা কোড কল করতে পারেন Instrumentation#sendStatus কী-মান জোড়া একটি তালিকা খুঁজে পাঠান। এটা মনে রাখা গুরুত্বপূর্ণ যে:

  1. মেট্রিক্স পূর্ণসংখ্যা বা ভাসমান বিন্দু হতে পারে
  2. কোন অ-সংখ্যাসূচক মান বাতিল করা হবে
  3. আপনার টেস্ট এপিকে ফাংশনাল টেস্ট বা মেট্রিক্স টেস্ট হতে পারে, তবে উভয়কে মিশ্রিত করা বর্তমানে সমর্থিত নয়