কম্পোজ প্রিভিউ স্ক্রিনশট টেস্টিং

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

একটি স্ক্রিনশট পরীক্ষা হল একটি স্বয়ংক্রিয় পরীক্ষা যা UI এর একটি অংশের একটি স্ক্রিনশট নেয় এবং তারপর এটিকে পূর্বে অনুমোদিত রেফারেন্স চিত্রের সাথে তুলনা করে। যদি চিত্রগুলি মেলে না, পরীক্ষাটি ব্যর্থ হয় এবং আপনাকে তুলনা করতে এবং পার্থক্যগুলি খুঁজে পেতে সহায়তা করার জন্য একটি HTML রিপোর্ট তৈরি করে৷

কম্পোজ প্রিভিউ স্ক্রিনশট টেস্টিং টুল দিয়ে, আপনি করতে পারেন:

  • আপনি স্ক্রিনশট পরীক্ষার জন্য ব্যবহার করতে চান এমন বেশ কয়েকটি বিদ্যমান বা নতুন কম্পোজযোগ্য পূর্বরূপ সনাক্ত করুন।
  • সেই কম্পোজেবল প্রিভিউ থেকে রেফারেন্স ইমেজ তৈরি করুন।
  • একটি এইচটিএমএল রিপোর্ট তৈরি করুন যা আপনি কোড পরিবর্তন করার পরে সেই পূর্বরূপগুলির পরিবর্তনগুলি সনাক্ত করে৷
  • @Preview প্যারামিটার ব্যবহার করুন, যেমন uiMode বা fontScale , এবং মাল্টি-প্রিভিউগুলি আপনার পরীক্ষাগুলিকে স্কেল করতে সাহায্য করুন৷
  • নতুন screenshotTest সোর্স সেটের মাধ্যমে আপনার পরীক্ষাগুলিকে মডুলারাইজ করুন।
চিত্র 1. উদাহরণ HTML রিপোর্ট।

প্রয়োজনীয়তা

কম্পোজ প্রিভিউ স্ক্রিনশট টেস্টিং ব্যবহার করতে, আপনার নিম্নলিখিতগুলি প্রয়োজন:

  • Android Gradle 8.5.0-beta01 বা উচ্চতর।
  • Kotlin 1.9.20 বা উচ্চতর।

সেটআপ

টুল সক্রিয় করতে, এই পদক্ষেপগুলি অনুসরণ করুন:

  1. আপনার প্রকল্পে com.android.compose.screenshot প্লাগইন, সংস্করণ 0.0.1-alpha01 যোগ করুন।
    1. আপনার সংস্করণ ক্যাটালগ ফাইলে প্লাগইন যোগ করুন:
      [versions]
      agp = "8.5.0-beta01"
      kotlin = "1.9.20"
      ...
      screenshot = "0.0.1-alpha01"
      
      [plugins]
      ...
      screenshot = { id = "com.android.compose.screenshot", version.ref = "screenshot"}
      
    2. আপনার মডিউল-স্তরের build.gradle.kts ফাইলে, plugins {} ব্লকে প্লাগইন যোগ করুন:
      plugins {
          ...
          alias(libs.plugins.screenshot)
      }
      
  2. আপনার প্রকল্পের gradle.properties ফাইলে পরীক্ষামূলক সম্পত্তি সক্রিয় করুন।
    android.experimental.enableScreenshotTest=true
    
  3. আপনার মডিউল-স্তরের build.gradle.kts ফাইলের android {} ব্লকে, screenshotTest সোর্স সেট ব্যবহার করতে পরীক্ষামূলক পতাকা সক্ষম করুন এবং নিশ্চিত করুন যে kotlinCompilerExtensionVersion 1.5.4 বা উচ্চতর সেট করা আছে।
    android {
        ...
        composeOptions {
            kotlinCompilerExtensionVersion = "1.5.4"
        }
        experimentalProperties["android.experimental.enableScreenshotTest"] = true
    }
    
  4. আপনি ui-tooling নির্ভরতা যোগ করেছেন তা নিশ্চিত করুন।
    1. আপনার সংস্করণ ক্যাটালগ এটি যোগ করুন:
      [libraries]
      androidx-compose-ui-tooling = { group = "androidx.compose.ui", name = "ui-tooling"}
      
    2. এটি আপনার মডিউল-স্তরের build.gradle.kts ফাইলে যোগ করুন:
      dependencies {
        screenshotTestImplementation(libs.androidx.compose.ui.tooling)
      }
      

স্ক্রিনশট পরীক্ষার জন্য ব্যবহার করার জন্য কম্পোজযোগ্য পূর্বরূপ নির্ধারণ করুন

স্ক্রিনশট পরীক্ষার জন্য আপনি যে সংমিশ্রণযোগ্য পূর্বরূপগুলি ব্যবহার করতে চান তা নির্ধারণ করতে, একটি পরীক্ষার ক্লাসে পূর্বরূপগুলি রাখুন। পরীক্ষার ক্লাস ফাইলটি অবশ্যই নতুন screenshotTest সোর্স সেটে অবস্থিত হতে হবে, উদাহরণস্বরূপ app/src/screenshotTest/kotlin/com/google/yourapp/ExamplePreviewScreenshots.kt ( {module}/src/screenshotTest/{kotlin|java}/com/your/package )।

আপনি এই ফাইলে বা একই সোর্সসেটে তৈরি অন্যান্য ফাইলগুলিতে মাল্টি-প্রিভিউ সহ আরও কম্পোজেবল এবং/অথবা পূর্বরূপ যোগ করতে পারেন।

package com.google.yourapp

import androidx.compose.runtime.Composable
import androidx.compose.ui.tooling.preview.Preview
import com.google.yourapp.ui.theme.MyApplicationTheme

class ExamplePreviewsScreenshots {

    @Preview(showBackground = true)
    @Composable
    fun GreetingPreview() {
        MyApplicationTheme {
            Greeting("Android!")
        }
    }
}

রেফারেন্স ইমেজ তৈরি করুন

আপনি একটি পরীক্ষা ক্লাস সেট আপ করার পরে, আপনাকে প্রতিটি পূর্বরূপের জন্য রেফারেন্স চিত্র তৈরি করতে হবে। আপনি কোড পরিবর্তন করার পরে এই রেফারেন্স চিত্রগুলি পরে পরিবর্তনগুলি সনাক্ত করতে ব্যবহার করা হয়। আপনার কম্পোজেবল প্রিভিউ স্ক্রিনশট পরীক্ষার জন্য রেফারেন্স ইমেজ তৈরি করতে, নিম্নলিখিত গ্রেডল টাস্কটি চালান:

  • Linux এবং macOS: ./gradlew updateDebugScreenshotTest ( ./gradlew {:module:}update{Variant}ScreenshotTest )
  • উইন্ডোজ: gradlew updateDebugScreenshotTest ( gradlew {:module:}update{Variant}ScreenshotTest )

টাস্ক সম্পূর্ণ হওয়ার পরে, app/src/debug/screenshotTest/reference ( {module}/src/{variant}/screenshotTest/reference ) এ রেফারেন্স চিত্রগুলি খুঁজুন।

একটি পরীক্ষার রিপোর্ট তৈরি করুন

একবার রেফারেন্স চিত্রগুলি উপস্থিত হলে, একটি নতুন স্ক্রিনশট নিতে এবং এটিকে রেফারেন্স চিত্রের সাথে তুলনা করতে যাচাইকরণ কাজটি চালান:

  • Linux এবং macOS: ./gradlew validateDebugScreenshotTest ( ./gradlew {:module:}validate{Variant}ScreenshotTest )
  • উইন্ডোজ: gradlew validateDebugScreenshotTest ( gradlew {:module:}validate{Variant}ScreenshotTest )

যাচাইকরণের কাজটি {module}/build/reports/screenshotTest/preview/{variant}/index.html এ একটি HTML রিপোর্ট তৈরি করে।

পরিচিত সমস্যা

আপনি টুলের ইস্যু ট্র্যাকার উপাদানে পরিচিত সমস্যার বর্তমান তালিকা খুঁজে পেতে পারেন। ইস্যু ট্র্যাকারের মাধ্যমে অন্য কোনও প্রতিক্রিয়া এবং সমস্যার রিপোর্ট করুন।

রিলিজ আপডেট

রিলিজ নোট এবং চলমান সংস্করণের জন্য পরিবর্তন

0.0.1-আলফা06

এই রিলিজ পরিচয় করিয়ে দেয়:

ইমেজ ডিফারেন্স থ্রেশহোল্ড: এই নতুন গ্লোবাল থ্রেশহোল্ড সেটিং আপনাকে স্ক্রিনশট তুলনার উপর সূক্ষ্ম নিয়ন্ত্রণ লাভ করতে দেয়। কনফিগার করতে, আপনার মডিউলের build.gradle.kts আপডেট করুন:

android {
    ...
    testOptions {
        ...
        screenshotTests {
            imageDifferenceThreshold = 0.0001f // 0.01%
        }
    }
}

এই থ্রেশহোল্ডটি মডিউলে সংজ্ঞায়িত সমস্ত স্ক্রিনশট পরীক্ষায় প্রয়োগ করা হবে।

  • বাগ ফিক্স: কিছু কম্পোজ রেন্ডারার বাগ এবং খালি কম্পোজের জন্য সমর্থন যোগ করা হয়েছে
  • পারফরম্যান্স বর্ধিতকরণ: ইমেজ ডিফিং অ্যালগরিদম দ্রুত হওয়ার জন্য আপডেট করা হয়েছে